/* eslint-disable */
/**
 * jQuery Hiprint 2.5.4
 *
 * Copyright (c) 2016-2021 www.hinnn.com. All rights reserved.
 *
 * Licensed under the LGPL or commercial licenses
 * To use it on other terms please contact us: hinnn.com@gmail.com
 *
 */

"use strict";

function _instanceof(left, right) {
	if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
		return !!right[Symbol.hasInstance](left);
	} else {
		return left instanceof right;
	}
}

function _typeof(obj) {
	if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
		_typeof = function _typeof(obj) {
			return typeof obj;
		};
	} else {
		_typeof = function _typeof(obj) {
			return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype
				? "symbol"
				: typeof obj;
		};
	}
	return _typeof(obj);
}

/**
 * import 相关资源
 */
import $ from "jquery";
// js颜色选择
import "@claviska/jquery-minicolors/jquery.minicolors.min";
// 条形码
import JsBarcode from "jsbarcode";
// 二维码
import "./plugins/qrcode.js";
import bwipjs from "bwip-js";
// 水印
import watermark from "./plugins/watermark.js";
// 直接打印需要
import { io } from "socket.io-client";
//引入标尺
import lImg from "./css/image/l_img.svg";
import vImg from "./css/image/v_img.svg";
// pdf
import { jsPDF } from "jspdf";
import html2canvas from "@wtto00/html2canvas";
// 数字转中文,大写,金额
import Nzh from "nzh";
// 解析svg 到 canvas, 二维码条形码需要
import { Canvg } from "canvg";
// 默认自定义拖拽列表
import defaultTypeProvider from "./etypes/default-etyps-provider";

window.$ = window.jQuery = $;
window.autoConnect = true;
window.io = io;

const modules = import.meta.glob("./i18n/*.json", { eager: true });

const languages = {};

Object.keys(modules).forEach((path) => {
	const match = path.match(/\.\/i18n\/([^.]+)\.json$/);
	if (match) {
		const locale = match[1];
		languages[locale] = modules[path].default;
	}
});

var i18n = {
	lang: "cn",
	languages,
	__: function (key, params) {
		var str = this.languages[this.lang][key] || key;
		if (params && params instanceof Object) {
			Object.keys(params).forEach((key) => {
				str = str.replace(new RegExp(`{{${key}}}`, "g"), params[key]);
			});
			return str;
		} else if (params) {
			str = str.replace(/%s/g, params);
			return str;
		} else {
			return str;
		}
	},
	__n: function (key, val) {
		var str = this.languages[this.lang][key];
		str = str.replace(/%s/g, val);
		return str;
	},
};

var hiprint = (function (t) {
	var e = {};

	function n(i) {
		if (e[i]) return e[i].exports;
		var o = (e[i] = {
			i: i,
			l: !1,
			exports: {},
		});
		return t[i].call(o.exports, o, o.exports, n), (o.l = !0), o.exports;
	}

	return (
		(n.m = t),
		(n.c = e),
		(n.d = function (t, e, i) {
			n.o(t, e) ||
				Object.defineProperty(t, e, {
					enumerable: !0,
					get: i,
				});
		}),
		(n.r = function (t) {
			"undefined" != typeof Symbol &&
				Symbol.toStringTag &&
				Object.defineProperty(t, Symbol.toStringTag, {
					value: "Module",
				}),
				Object.defineProperty(t, "__esModule", {
					value: !0,
				});
		}),
		(n.t = function (t, e) {
			if ((1 & e && (t = n(t)), 8 & e)) return t;
			if (4 & e && "object" == _typeof(t) && t && t.__esModule) return t;
			var i = Object.create(null);
			if (
				(n.r(i),
				Object.defineProperty(i, "default", {
					enumerable: !0,
					value: t,
				}),
				2 & e && "string" != typeof t)
			)
				for (var o in t) {
					n.d(
						i,
						o,
						function (e) {
							return t[e];
						}.bind(null, o),
					);
				}
			return i;
		}),
		(n.n = function (t) {
			var e =
				t && t.__esModule
					? function () {
							return t.default;
						}
					: function () {
							return t;
						};
			return n.d(e, "a", e), e;
		}),
		(n.o = function (t, e) {
			return Object.prototype.hasOwnProperty.call(t, e);
		}),
		(n.p = "/"),
		n((n.s = 21))
	);
})([
	function (t, e, n) {
		/**/
		"use strict";

		var i;
		n.d(e, "a", function () {
			return hinnn;
		}),
			(window.hinnn = {}),
			(hinnn.event =
				((i = {}),
				{
					on: function on(t, e) {
						i[t] || (i[t] = []), i[t].push(e);
					},
					id: 0,
					off: function off(t, e) {
						var n = i[t];
						if (n) {
							for (var o = -1, r = 0; r < n.length; r++) {
								if (n[r] === e) {
									o = r;
									break;
								}
							}
							o < 0 || i[t].splice(o, 1);
						}
					},
					trigger: function trigger(t) {
						var e = i[t];
						if (e && e.length)
							for (var n = Array.prototype.slice.call(arguments, 1), o = 0; o < e.length; o++) {
								e[o].apply(this, n);
							}
					},
					clear: function clear(t) {
						i[t] = [];
					},
					getId: function getId() {
						return (this.id += 1), this.id;
					},
					getNameWithId: function getNameWithId(t) {
						return t + "-" + this.getId();
					},
				})),
			(hinnn.form = {
				serialize: function serialize(t) {
					var e = $(t).serializeArray(),
						n = {};
					return (
						$.each(e, function () {
							n[this.name]
								? "[object Array]" == Object.prototype.toString.call(n[this.name])
									? n[this.name].push(this.value)
									: (n[this.name] = [n[this.name], this.value])
								: (n[this.name] = this.value);
						}),
						n
					);
				},
			}),
			(hinnn.pt = {
				toPx: function toPx(t) {
					return t * (this.getDpi() / 72);
				},
				toMm: function toMm(t) {
					return hinnn.px.toMm(hinnn.pt.toPx(t));
				},
				dpi: 0,
				getDpi: function getDpi() {
					if (!this.dpi) {
						var _t2 = document.createElement("DIV");

						(_t2.style.cssText =
							"width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden"),
							document.body.appendChild(_t2),
							(this.dpi = _t2.offsetHeight);
					}

					return this.dpi;
				},
			}),
			(hinnn.px = {
				toPt: function toPt(t) {
					return t * (72 / this.getDpi());
				},
				toMm: function toMm(t) {
					return Math.round((t / this.getDpi()) * 25.4 * 100) / 100;
				},
				dpi: 0,
				getDpi: function getDpi() {
					if (!this.dpi) {
						var _t3 = document.createElement("DIV");

						(_t3.style.cssText =
							"width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden"),
							document.body.appendChild(_t3),
							(this.dpi = _t3.offsetHeight);
					}

					return this.dpi;
				},
			}),
			(hinnn.mm = {
				toPt: function toPt(t) {
					return (72 / 25.4) * t;
				},
				toPx: function toPx(t) {
					return hinnn.pt.toPx(hinnn.mm.toPt(t));
				},
			}),
			(hinnn.throttle = function (t, e, n) {
				var i,
					o,
					r,
					a = null,
					p = 0;
				n || (n = {});

				var s = function s() {
					(p = !1 === n.leading ? 0 : _.now()), (a = null), (r = t.apply(i, o)), a || (i = o = null);
				};

				return function () {
					var l = _.now();

					p || !1 !== n.leading || (p = l);
					var u = e - (l - p);
					return (
						(i = this),
						(o = arguments),
						u <= 0 || u > e
							? (a && (clearTimeout(a), (a = null)), (p = l), (r = t.apply(i, o)), a || (i = o = null))
							: a || !1 === n.trailing || (a = setTimeout(s, u)),
						r
					);
				};
			}),
			(hinnn.debounce = function (t, e, n) {
				var i,
					o,
					r,
					a,
					p,
					s = function s() {
						var l = _.now() - a;
						l < e && l >= 0
							? (i = setTimeout(s, e - l))
							: ((i = null), n || ((p = t.apply(r, o)), i || (r = o = null)));
					};

				return function () {
					(r = this), (o = arguments), (a = _.now());
					var l = n && !i;
					return i || (i = setTimeout(s, e)), l && ((p = t.apply(r, o)), (r = o = null)), p;
				};
			}),
			(hinnn.toUtf8 = function (t) {
				var e, n, i, o;

				for (e = "", i = t.length, n = 0; n < i; n++) {
					(o = t.charCodeAt(n)) >= 1 && o <= 127
						? (e += t.charAt(n))
						: o > 2047
							? ((e += String.fromCharCode(224 | ((o >> 12) & 15))),
								(e += String.fromCharCode(128 | ((o >> 6) & 63))),
								(e += String.fromCharCode(128 | ((o >> 0) & 63))))
							: ((e += String.fromCharCode(192 | ((o >> 6) & 31))), (e += String.fromCharCode(128 | ((o >> 0) & 63))));
				}

				return e;
			}),
			(hinnn.groupBy = function (t, e, n) {
				var i = {};
				return (
					t.forEach(function (t) {
						var o = JSON.stringify(n(t));
						i[o] ||
							((i[o] = {
								rows: [],
							}),
							e.forEach(function (e) {
								i[o][e] = t[e];
							})),
							i[o].rows.push(t);
					}),
					Object.keys(i).map(function (t) {
						return i[t];
					})
				);
			}),
			(hinnn.orderBy = function (t, e) {
				if (t.length <= 1) return t;
				var n = Math.floor(t.length / 2),
					i = t.splice(n, 1)[0],
					o = [],
					r = [];
				var _iteratorNormalCompletion = true;
				var _didIteratorError = false;
				var _iteratorError = undefined;

				try {
					for (
						var _iterator = t[Symbol.iterator](), _step;
						!(_iteratorNormalCompletion = (_step = _iterator.next()).done);
						_iteratorNormalCompletion = true
					) {
						var _n = _step.value;
						e(_n) < e(i) ? o.push(_n) : r.push(_n);
					}
				} catch (err) {
					_didIteratorError = true;
					_iteratorError = err;
				} finally {
					try {
						if (!_iteratorNormalCompletion && _iterator.return != null) {
							_iterator.return();
						}
					} finally {
						if (_didIteratorError) {
							throw _iteratorError;
						}
					}
				}

				return this.orderBy(o, e).concat([i], this.orderBy(r, e));
			}),
			(hinnn.dateFormat = function (t, e) {
				if (t)
					try {
						var o = "string" == typeof t ? new Date(t) : t;
						var n = {
							"y+": o.getFullYear(),
							"M+": o.getMonth() + 1,
							"d+": o.getDate(),
							"H+": o.getHours(),
							"m+": o.getMinutes(),
							"s+": o.getSeconds(),
							"q+": Math.floor((o.getMonth() + 3) / 3),
							S: o.getMilliseconds(),
						};

						for (var i in (/(y+)/.test(e) &&
							(e = e.replace(RegExp.$1, (o.getFullYear() + "").substr(4 - RegExp.$1.length))),
						n)) {
							new RegExp("(" + i + ")").test(e) &&
								(e = e.replace(RegExp.$1, 1 == RegExp.$1.length ? n[i] : ("00" + n[i]).substr(("" + n[i]).length)));
						}

						return e;
					} catch (t) {
						return console.log(t), "";
					}
				return "";
			}),
			(hinnn.numFormat = function (t, e) {
				if (t != void 0)
					try {
						var o = "string" == typeof t ? parseFloat(t) : t;
						var l = parseInt(e);
						if (l > 0) {
							return o.toFixed(l);
						}
						return parseInt(o.toString());
					} catch (t) {
						return console.log(t), "";
					}
				return "";
			}),
			(hinnn.toUpperCase = function (type, val) {
				if (!Nzh) return val;
				var backStr = val;
				switch (type) {
					case "0":
						backStr = Nzh.cn.encodeS(val);
						break;
					case "1":
						backStr = Nzh.cn.encodeS(val, { tenMin: false });
						break;
					case "2":
						backStr = Nzh.cn.encodeB(val, { tenMin: true });
						break;
					case "3":
						backStr = Nzh.cn.encodeB(val);
						break;
					case "4":
						backStr = Nzh.cn.toMoney(val, { tenMin: true });
						break;
					case "5":
						backStr = Nzh.cn.toMoney(val);
						break;
					case "6":
						backStr = Nzh.cn.toMoney(val, { complete: true });
						break;
					case "7":
						backStr = Nzh.cn.toMoney(val, { complete: true, outSymbol: false });
						break;
				}
				return backStr;
			});
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return o;
		});

		var i = n(9),
			o = (function () {
				function t() {
					// see hiprint.config.js
				}

				return (
					(t.prototype.init = function (t) {
						t && $.extend(this, t);
					}),
					(t.prototype.on = function (t, c) {
						hinnn.event.on(t, c);
					}),
					(t.prototype.clear = function (t) {
						hinnn.event.clear(t);
					}),
					(t.prototype.registerItems = function (items) {
						items.forEach(function (t) {
							i.a.registerItem(new t());
						});
					}),
					Object.defineProperty(t, "instance", {
						get: function get() {
							return (
								t._instance ||
									((t._instance = new t()),
									window.HIPRINT_CONFIG && $.extend(t._instance, HIPRINT_CONFIG),
									t._instance.optionItems &&
										t._instance.optionItems.forEach(function (t) {
											i.a.registerItem(new t());
										})),
								t._instance
							);
						},
						enumerable: !0,
						configurable: !0,
					}),
					t
				);
			})();
	},
	function (t, e, n) {
		"use strict";

		var i = (function () {
			function t(t) {
				this.printElement = t;
			}

			return (
				(t.prototype.updatePosition = function (t, e) {
					(this.left = t), (this.top = e);
				}),
				t
			);
		})();

		n.d(e, "a", function () {
			return o;
		});

		var o = (function () {
			function t() {
				(this.printTemplateContainer = {}),
					(this.A1 = {
						width: 841,
						height: 594,
					}),
					(this.A2 = {
						width: 420,
						height: 594,
					}),
					(this.A3 = {
						width: 420,
						height: 297,
					}),
					(this.A4 = {
						width: 210,
						height: 297,
					}),
					(this.A5 = {
						width: 210,
						height: 148,
					}),
					(this.A6 = {
						width: 105,
						height: 148,
					}),
					(this.A7 = {
						width: 105,
						height: 74,
					}),
					(this.A8 = {
						width: 52,
						height: 74,
					}),
					(this.B1 = {
						width: 1e3,
						height: 707,
					}),
					(this.B2 = {
						width: 500,
						height: 707,
					}),
					(this.B3 = {
						width: 500,
						height: 353,
					}),
					(this.B4 = {
						width: 250,
						height: 353,
					}),
					(this.B5 = {
						width: 250,
						height: 176,
					}),
					(this.B6 = {
						width: 125,
						height: 176,
					}),
					(this.B7 = {
						width: 125,
						height: 88,
					}),
					(this.B8 = {
						width: 62,
						height: 88,
					}),
					(this.dragLengthCNum = function (t, e) {
						var n = 0.75 * t;
						return e && (e = e), Math.round(n / e) * e;
					});
			}

			return (
				Object.defineProperty(t, "instance", {
					get: function get() {
						return this._instance || (this._instance = new t()), this._instance;
					},
					enumerable: !0,
					configurable: !0,
				}),
				(t.prototype.getDragingPrintElement = function () {
					return t.instance.dragingPrintElement;
				}),
				(t.prototype.setDragingPrintElement = function (e) {
					t.instance.dragingPrintElement = new i(e);
				}),
				(t.prototype.guid = function () {
					return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (t) {
						var e = (16 * Math.random()) | 0;
						return ("x" == t ? e : (3 & e) | 8).toString(16);
					});
				}),
				(t.prototype.imageToBase64 = function (t) {
					if (-1 == $(t).attr("src").indexOf("base64"))
						try {
							var e = document.createElement("canvas"),
								n = new Image();
							(n.src = t.attr("src")),
								(e.width = n.width),
								(e.height = n.height),
								e.getContext("2d").drawImage(n, 0, 0),
								t.attr("src", e.toDataURL("image/png"));
						} catch (e) {
							try {
								this.xhrLoadImage(t);
							} catch (t) {
								console.log(t);
							}
						}
				}),
				(t.prototype.xhrLoadImage = function (t) {}),
				(t.prototype.transformImg = function (t) {
					var e = this;
					t.map(function (t, n) {
						e.imageToBase64($(n));
					});
				}),
				(t.prototype.getPrintTemplateById = function (e) {
					return t.instance.printTemplateContainer[e];
				}),
				(t.prototype.setPrintTemplateById = function (e, n) {
					return (t.instance.printTemplateContainer[e] = n);
				}),
				t
			);
		})();
	},
	function (t, e, n) {
		"use strict";

		var i = (function () {
			return function () {};
		})();

		n.d(e, "a", function () {
			return o;
		});

		var o = (function () {
			function t(t) {
				(t = t || {}),
					(this.left = t.left),
					(this.top = t.top),
					(this.topInDesign = this.top),
					(this.height = t.height),
					(this.width = t.width),
					(this.transform = t.transform),
					this.init(t);
			}

			return (
				(t.prototype.setDefault = function (t) {
					(this.defaultOptions = t), this.initSize();
					Object.keys(this.defaultOptions).forEach((key) => {
						this[key] = this[key] || this.defaultOptions[key];
					});
				}),
				(t.prototype.initSize = function () {
					this.width || this.setWidth(this.defaultOptions.width),
						this.height || this.setHeight(this.defaultOptions.height);
				}),
				(t.prototype.initSizeByHtml = function (t, e) {
					this.width || this.setWidth(t), this.height || this.setHeight(e);
				}),
				(t.prototype.getRectInfo = function () {
					var d = { w: 0, h: 0, diffW: 0, diffH: 0 };
					if (this.transform) {
						var rad = (this.transform * Math.PI) / 180,
							width = this.width,
							height = this.height,
							sin = Math.sin(rad),
							cos = Math.cos(rad),
							w = Math.abs(width * cos) + Math.abs(height * sin),
							h = Math.abs(width * sin) + Math.abs(height * cos),
							diffW = (width - w) / 2,
							diffH = (height - h) / 2;
						(d.w = w), (d.h = h), (d.diffW = diffW), (d.diffH = diffH);
					}
					return d;
				}),
				(t.prototype.getLeft = function () {
					return this.left;
				}),
				(t.prototype.posLeft = function () {
					var left = this.left;
					if (this.transform) left += this.getRectInfo().diffW;
					return Math.floor(left * 10) / 10;
				}),
				(t.prototype.setRotate = function (t) {
					null != t && (this.transform = t);
				}),
				(t.prototype.displayLeft = function (t) {
					if (this.transform && t) {
						return this.left + this.getRectInfo().diffW + "pt";
					}
					return this.left + "pt";
				}),
				(t.prototype.setLeft = function (t) {
					null != t && (this.left = t);
				}),
				(t.prototype.getTop = function () {
					return this.top;
				}),
				(t.prototype.posTop = function () {
					var top = this.top;
					if (this.transform) top += this.getRectInfo().diffH;
					return Math.floor(top * 10) / 10;
				}),
				(t.prototype.getTopInDesign = function () {
					return this.topInDesign;
				}),
				(t.prototype.displayTop = function (t) {
					if (this.transform && t) {
						return this.top + this.getRectInfo().diffH + "pt";
					}
					return this.top + "pt";
				}),
				(t.prototype.setTop = function (t) {
					null != t && (this.top = t);
				}),
				(t.prototype.copyDesignTopFromTop = function () {
					this.topInDesign = this.top;
				}),
				(t.prototype.getHeight = function () {
					if (this.transform) {
						var i = this.getRectInfo();
						return i.h + i.diffH;
					}
					return this.height;
				}),
				(t.prototype.displayHeight = function () {
					return this.height + "pt";
				}),
				(t.prototype.setHeight = function (t) {
					null != t && (this.height = t);
				}),
				(t.prototype.getWidth = function () {
					if (this.transform) {
						var i = this.getRectInfo();
						return i.w + i.diffW;
					}
					return this.width;
				}),
				(t.prototype.displayWidth = function () {
					return this.width + "pt";
				}),
				(t.prototype.setWidth = function (t) {
					null != t && (this.width = t);
				}),
				(t.prototype.getValueFromOptionsOrDefault = function (t) {
					return null == this[t] ? this.defaultOptions[t] : this[t];
				}),
				(t.prototype.getPrintElementOptionEntity = function () {
					var t = new i(),
						e = this;
					return (
						Object.keys(this)
							.filter(function (t) {
								return "topInDesign" != t;
							})
							.forEach(function (n) {
								if (
									(("number" != typeof e[n] &&
										"string" != typeof e[n] &&
										!["fields"].includes(n) &&
										_typeof(e[n]) != _typeof(!0)) ||
										(t[n] = e[n]),
									"style" == n)
								) {
									t.style = {};
									var i = e[n];
									if (i)
										Object.keys(i).forEach(function (e) {
											("number" != typeof i[e] && "string" != typeof i[e]) || (t.style[e] = i[e]);
										});
								}
							}),
						t
					);
				}),
				(t.prototype.init = function (t) {
					var e = this;
					t &&
						Object.keys(t).forEach(function (n) {
							e[n] = t[n];
						});
				}),
				t
			);
		})();
	},
	function (module, __webpack_exports__, __webpack_require__) {
		"use strict";

		__webpack_require__.d(__webpack_exports__, "a", function () {
			return BasePrintElement;
		});

		var _entity_PrintElementEntity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17),
			_HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1),
			_print_element_option_PrintElementOptionItemManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9),
			_dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6),
			_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0),
			_PrintReferenceElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8),
			_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2),
			BasePrintElement = (function () {
				function BasePrintElement(t) {
					(this.printElementType = t), (this.id = _HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.guid());
				}

				return (
					(BasePrintElement.prototype.getConfigOptionsByName = function (t) {
						return _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance[t];
					}),
					(BasePrintElement.prototype.getProxyTarget = function (t) {
						t && this.SetProxyTargetOption(t);
						var e = this.getData(),
							n = this.createTarget(this.getTitle(), e);
						return this.updateTargetSize(n), this.css(n, e), n;
					}),
					(BasePrintElement.prototype.SetProxyTargetOption = function (t) {
						this.options.getPrintElementOptionEntity();
						$.extend(this.options, t);
						this.copyFromType();
					}),
					(BasePrintElement.prototype.showInPage = function (t, e) {
						var n = this.options.showInPage,
							i = this.options.unShowInPage;

						if (n) {
							if ("first" == n) return 0 == t;
							if (t == e - 1 && "last" == i) return !1;
							if ("odd" == n) return (0 != t || "first" != i) && t % 2 == 0;
							if ("even" == n) return t % 2 == 1;
							if ("last" == n) return t == e - 1;
						}

						return (0 != t || "first" != i) && (t != e - 1 || "last" != i);
					}),
					(BasePrintElement.prototype.setTemplateId = function (t) {
						this.templateId = t;
					}),
					(BasePrintElement.prototype.setPanel = function (t) {
						this.panel = t;
					}),
					(BasePrintElement.prototype.getField = function () {
						return this.options.field || this.printElementType.field;
					}),
					(BasePrintElement.prototype.getTitle = function () {
						return this.printElementType.title;
					}),
					(BasePrintElement.prototype.updateSizeAndPositionOptions = function (t, e, n, i) {
						const template = _HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.getPrintTemplateById(this.templateId);
						if (this.panel !== void 0 && !template.willOutOfBounds) {
							const panelWidthPt = hinnn.mm.toPt(this.panel.width);
							const panelHeightPt = hinnn.mm.toPt(this.panel.height);
							if (t < 0) {
								return;
							}
							if (e < 0) {
								return;
							}
							if (t + this.options.width > panelWidthPt) {
								return;
							}
							if (e + this.options.height > panelHeightPt) {
								return;
							}
						}
						this.options.setLeft(t),
							this.options.setTop(e),
							this.options.copyDesignTopFromTop(),
							this.options.setWidth(n),
							this.options.setHeight(i);
					}),
					(BasePrintElement.prototype.initSizeByHtml = function (t) {
						if (t && t.length) {
							this.createTempContainer();
							var e = t.clone();
							this.getTempContainer().append(e),
								this.options.initSizeByHtml(
									parseInt(hinnn.px.toPt(e.width()).toString()),
									parseInt(hinnn.px.toPt(e.height()).toString()),
								),
								this.removeTempContainer();
						}
					}),
					(BasePrintElement.prototype.updateTargetSize = function (t) {
						t.css("width", this.options.displayWidth()), t.css("height", this.options.displayHeight());
					}),
					(BasePrintElement.prototype.updateTargetWidth = function (t) {
						t.css("width", this.options.displayWidth());
					}),
					(BasePrintElement.prototype.getDesignTarget = function (t) {
						var e = this,
							lastTimeStamp = 0;
						return (
							(this.designTarget = this.getHtml(t)[0].target),
							(this.designPaper = t),
							this.designTarget.click(function (ev) {
								if (ev.timeStamp - lastTimeStamp > 500) {
									hinnn.event.trigger(e.getPrintElementSelectEventKey(), {
										printElement: e,
									});
								}
								lastTimeStamp = ev.timeStamp;
							}),
							this.designTarget.dblclick(function (ev) {
								var c = e.designTarget.find(".hiprint-printElement-content");
								if (c) {
									var p = e.designTarget.find(".resize-panel");
									if (e.printElementType.type == "text" && !(e.options.textType && "text" != e.options.textType)) {
										e._editing = true;
										e.designTarget.hidraggable("update", { draggable: false });
										c.css("cursor", "text"), c.addClass("editing");
										e.designTarget.addClass("editing");
										c.click(function (ev) {
											if (e._editing) {
												ev.stopPropagation();
											}
										});
										c.attr("contenteditable", true), p && p.css("display", "none");
										e.selectEnd(c);
									}
								}
							}),
							this.designTarget
						);
					}),
					(BasePrintElement.prototype.selectEnd = function (el) {
						el.focus();
						if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
							var r = document.createRange();
							r.selectNodeContents(el[0]);
							r.collapse(false);
							var sel = window.getSelection();
							sel.removeAllRanges();
							sel.addRange(r);
						} else if (typeof document.body.createTextRange != "undefined") {
							var r = document.body.createTextRange();
							r.moveToElementText(el[0]), r.collapse(false), r.select();
						}
					}),
					(BasePrintElement.prototype.updateByContent = function (clear) {
						var e = this,
							c = e.designTarget.find(".hiprint-printElement-content");
						if (e._editing) {
							c && c.css("cursor", "") && c.removeClass("editing") && c.removeAttr("contenteditable");
							e.designTarget.removeClass("editing");
							var t = c.text(),
								title = e.options.title;
							if (t.startsWith(title) && e.options.field) {
								if (t.length > title.length) {
									e.options.testData = t.split("：")[1];
								} else {
									e.options.title = t;
									e.options.testData = "";
								}
							} else {
								e.options.title = t;
							}
							e.options.title = e.options.title.split("：")[0];
							if (!clear) {
								hinnn.event.trigger(e.getPrintElementSelectEventKey(), {
									printElement: e,
								});
							}
							e.updateDesignViewFromOptions(),
								hinnn.event.trigger("hiprintTemplateDataChanged_" + e.templateId, "编辑修改");
							e._editing = false;
							var draggable = e.options.draggable == undefined || true == e.options.draggable;
							e.designTarget.hidraggable("update", { draggable: draggable });
						}
					}),
					(BasePrintElement.prototype.getPrintElementSelectEventKey = function () {
						return "PrintElementSelectEventKey_" + this.templateId;
					}),
					(BasePrintElement.prototype.design = function (t, e) {
						var n = this;
						this.designTarget.hidraggable({
							// 添加 draggable 属性
							draggable: n.options.draggable,
							axis: n.options.axis ? n.options.axis : void 0,
							designTarget: n,
							onDrag: function onDrag(t, i, o) {
								// 处理按住 ctrl / command 多选元素
								var els = n.panel.printElements.filter(function (t) {
									return (
										"block" == t.designTarget.children().last().css("display") &&
										t.designTarget.children().last().hasClass("selected") &&
										!t.printElementType.type.includes("table")
									);
								});
								var isMultiple = els.length > 1;
								var notSelected = !n.designTarget.children().last().hasClass("selected");
								if (isMultiple) {
									var left = i - n.options.left,
										top = o - n.options.top;
									els.forEach(function (t) {
										t.updateSizeAndPositionOptions(left + t.options.getLeft(), top + t.options.getTop()),
											t.designTarget.css("left", t.options.displayLeft()),
											t.designTarget.css("top", t.options.displayTop());
										t.createLineOfPosition(e);
									});
									if (notSelected) {
										n.updateSizeAndPositionOptions(i, o), n.createLineOfPosition(e);
									}
								} else {
									n.updateSizeAndPositionOptions(i, o), n.createLineOfPosition(e);
								}
								_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.changed = !0;
							},
							moveUnit: "pt",
							minMove: _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.movingDistance,
							onBeforeDrag: function onBeforeDrag(t) {
								(_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.draging = !0),
									n.designTarget.focus(),
									n.createLineOfPosition(e);
							},
							onBeforeSelectAllDrag: function onBeforeSelectAllDrag() {
								(_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.draging = !0), n.designTarget.focus();
							},
							getScale: function getScale() {
								return n.designPaper.scale || 1;
							},
							onStopDrag: function onStopDrag(t) {
								// 普通元素拖动结束事件history
								if (_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.changed)
									hinnn.event.trigger("hiprintTemplateDataChanged_" + n.templateId, "移动");
								(_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.draging = !1),
									(_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.changed = !1);
								var els = n.panel.printElements.filter(function (t) {
									return (
										"block" == t.designTarget.children().last().css("display") &&
										!t.printElementType.type.includes("table")
									);
								});
								if (els.length > 1) {
									els.forEach(function (t) {
										t.removeLineOfPosition();
									});
								} else n.removeLineOfPosition();
							},
						}),
							this.setResizePanel(),
							this.bingCopyEvent(this.designTarget),
							this.bingKeyboardMoveEvent(this.designTarget, e);
					}),
					(BasePrintElement.prototype.getPrintElementEntity = function (t) {
						return t
							? new _entity_PrintElementEntity__WEBPACK_IMPORTED_MODULE_0__.a(
									void 0,
									this.options.getPrintElementOptionEntity(),
									this.printElementType.getPrintElementTypeEntity(),
								)
							: new _entity_PrintElementEntity__WEBPACK_IMPORTED_MODULE_0__.a(
									this.printElementType.tid,
									this.options.getPrintElementOptionEntity(),
								);
					}),
					(BasePrintElement.prototype.submitOption = function () {
						var els = this.panel.printElements.filter(function (t) {
							return (
								"block" == t.designTarget.children().last().css("display") &&
								t.designTarget.children().last().hasClass("selected") &&
								!t.printElementType.type.includes("table")
							);
						});
						els = els.filter((ele) => ele.printElementType.type == this.printElementType.type);
						var t = this,
							o = this.getConfigOptions();
						if (o && o.tabs && o.tabs.length) {
							this.getPrintElementOptionTabs().forEach(function (tab) {
								// 样式更新要应用到其他选中的同种元素
								if (tab.name === "样式" && els.length) {
									tab.list.forEach(function (e) {
										els.forEach((ele) => {
											var n = e.getValue(),
												r = "textType" == e.name && ele.options[e.name] !== n,
												a = "axis" == e.name && ele.options[e.name] !== n;
											n && "object" == _typeof(n)
												? Object.keys(n).forEach(function (e) {
														ele.options[e] = n[e];
													})
												: (ele.options[e.name] = n);
											if (r) {
												ele.setResizePanel();
											}
											if (a) {
												ele.designTarget.hidraggable("update", { axis: n });
											}
										});
									});
								} else {
									tab.list.forEach(function (e) {
										var n = e.getValue(),
											r = "textType" == e.name && t.options[e.name] !== n,
											a = "axis" == e.name && t.options[e.name] !== n;
										n && "object" == _typeof(n)
											? Object.keys(n).forEach(function (e) {
													t.options[e] = n[e];
												})
											: (t.options[e.name] = n);
										if (r) {
											t.setResizePanel();
										}
										if (a) {
											t.designTarget.hidraggable("update", { axis: n });
										}
									});
								}
							});
						} else {
							this.getPrintElementOptionItems().forEach(function (e) {
								var n = e.getValue(),
									r = "textType" == e.name && t.options[e.name] !== n,
									a = "axis" == e.name && t.options[e.name] !== n;
								n && "object" == _typeof(n)
									? Object.keys(n).forEach(function (e) {
											t.options[e] = n[e];
										})
									: (t.options[e.name] = n);
								if (r) {
									t.setResizePanel();
								}
								if (a) {
									t.designTarget.hidraggable("update", { axis: n });
								}
							});
						}
						this.updateDesignViewFromOptions(),
							hinnn.event.trigger("hiprintTemplateDataChanged_" + this.templateId, "元素修改");
					}),
					(BasePrintElement.prototype.updateOption = function (o, v, b) {
						try {
							var e = this.getConfigOptions();
							var optionKeys = [];
							if (e && e.tabs && e.tabs.length) {
								e.tabs.forEach(function (n) {
									n.options.forEach(function (e) {
										optionKeys.push(e.name);
									});
								});
							} else {
								optionKeys = e.supportOptions.map(function (e) {
									return e.name;
								});
							}
							if (optionKeys && optionKeys.includes(o)) {
								this.options[o] = v;
								this.updateDesignViewFromOptions();
								if (!b) {
									hinnn.event.trigger("hiprintTemplateDataChanged_" + this.templateId, "参数修改");
								}
							}
							this._printElementOptionTabs.forEach((tab) => {
								tab.list.forEach((item) => {
									if (item.name === o) {
										item.target.find("select")?.val(v.toString());
										item.target.find("input")?.val(v.toString());
									}
								});
							});
						} catch (e) {
							console.log("updateOption error", e);
						}
					}),
					(BasePrintElement.prototype.getReizeableShowPoints = function () {
						return ["barcode", "qrcode"].includes(this.options.textType) ? ["se", "s", "e", "r"] : ["s", "e", "r"];
					}),
					(BasePrintElement.prototype.setResizePanel = function () {
						var n = this,
							e = this.designPaper;
						this.designTarget.hireizeable({
							showPoints: n.getReizeableShowPoints(),
							draggable: n.options.draggable, // 元素是否可拖拽、删除
							// 是否显示宽高box
							showSizeBox: _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.showSizeBox,
							getScale: function getScale() {
								return n.designPaper.scale || 1;
							},
							onBeforeResize: function onBeforeResize() {
								_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.draging = !0;
							},
							onResize: function onResize(t, i, o, r, a, rt) {
								if (undefined != rt) {
									n.onRotate(t, rt);
								} else {
									n.onResize(t, i, o, r, a);
								}
								n.createLineOfPosition(e);
							},
							onStopResize: function onStopResize(r) {
								hinnn.event.trigger("hiprintTemplateDataChanged_" + n.templateId, r ? "旋转" : "大小");
								(_HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.draging = !1), n.removeLineOfPosition();
							},
						});
					}),
					(BasePrintElement.prototype.onRotate = function (t, r) {
						this.options.setRotate(r);
					}),
					(BasePrintElement.prototype.onResize = function (t, e, n, i, o) {
						this.updateSizeAndPositionOptions(o, i, n, e);
					}),
					(BasePrintElement.prototype.getOrderIndex = function () {
						return this.options.getTop();
					}),
					(BasePrintElement.prototype.getHtml = function (t, e, n) {
						var i = 0;
						this.setCurrenttemplateData(e);
						var o = [],
							r = this.getBeginPrintTopInPaperByReferenceElement(t),
							a = t.getPaperFooter(i);
						this.isHeaderOrFooter() ||
							this.isFixed() ||
							(r > a &&
								"none" != t.panelPageRule &&
								(o.push(
									new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
										target: void 0,
										printLine: void 0,
									}),
								),
								(r = r - a + t.paperHeader),
								i++,
								(a = t.getPaperFooter(i))));
						var p = this.getData(e),
							s = this.createTarget(this.getTitle(), p, n);
						this.updateTargetSize(s),
							this.css(s, p),
							s.css("position", "absolute"),
							s.css("left", this.options.displayLeft()),
							s.css("top", r + "pt"),
							o.push(
								new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
									target: s,
									printLine: r + this.options.getHeight(),
									referenceElement: new _PrintReferenceElement__WEBPACK_IMPORTED_MODULE_5__.a({
										top: this.options.getTop(),
										left: this.options.getLeft(),
										height: this.options.getHeight(),
										width: this.options.getWidth(),
										beginPrintPaperIndex: t.index,
										bottomInLastPaper: r + this.options.getHeight(),
										printTopInPaper: r,
									}),
								}),
							);
						if (e && this.options.pageBreak) {
							o[0].target.css("top", t.paperHeader + "pt");
							o[0].referenceElement.top = this.options.getTop() - this.options.getHeight() - t.paperHeader;
							o[0].printLine = t.paperHeader;
							o[0].referenceElement.bottomInLastPaper = 0;
							o[0].referenceElement.printTopInPaper = t.paperHeader;
							o.unshift(
								new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
									target: s,
									printLine: t.height,
									referenceElement: new _PrintReferenceElement__WEBPACK_IMPORTED_MODULE_5__.a({
										top: 0,
										left: 0,
										height: 0,
										width: 0,
										beginPrintPaperIndex: t.index,
										bottomInLastPaper: t.height,
										printTopInPaper: t.paperHeader,
									}),
								}),
							);
						}
						return o;
					}),
					(BasePrintElement.prototype.getHtml2 = function (t, e, n) {
						var i = 0;
						this.setCurrenttemplateData(e);
						var o = [],
							r = this.getBeginPrintTopInPaperByReferenceElement(t),
							a = t.getPaperFooter(i);
						// 处理文本/辅助元素 当高度大于模板高度, 插入的分页...
						this.isHeaderOrFooter() ||
							this.isFixed() ||
							("none" != t.panelPageRule &&
								r > a &&
								(o.push(
									new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
										target: void 0,
										printLine: void 0,
										// (e && r + this.options.getHeight() > a) --> 设计时拖拽元素高度超过页脚线时,导致报错问题
									}),
								),
								(r = r - a + t.paperHeader),
								i++,
								(a = t.getPaperFooter(i))),
							r <= a &&
								e &&
								r + this.options.getHeight() > a &&
								"none" != t.panelPageRule &&
								(o.push(
									new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
										target: void 0,
										printLine: void 0,
									}),
								),
								(r = t.paperHeader),
								i++,
								(a = t.getPaperFooter(i))));
						var p = this.getData(e),
							s = this.createTarget(this.getTitle(), p);
						if ("none" == t.panelPageRule && r + this.options.getHeight() > a)
							this.updatePanelHeight(r + this.options.getHeight(), t);
						this.updateTargetSize(s),
							this.css(s, p),
							s.css("position", "absolute"),
							s.css("left", this.options.displayLeft()),
							s.css("top", r + "pt"),
							o.push(
								new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
									target: s,
									printLine: r + this.options.getHeight(),
									referenceElement: new _PrintReferenceElement__WEBPACK_IMPORTED_MODULE_5__.a({
										top: this.options.getTop(),
										left: this.options.getLeft(),
										height: this.options.getHeight(),
										width: this.options.getWidth(),
										beginPrintPaperIndex: t.index,
										bottomInLastPaper: r + this.options.getHeight(),
										printTopInPaper: r,
									}),
								}),
							);
						if (e && this.options.pageBreak) {
							o[0].target.css("top", t.paperHeader + "pt");
							o[0].referenceElement.top = this.options.getTop() - this.options.getHeight() - t.paperHeader;
							o[0].printLine = t.paperHeader;
							o[0].referenceElement.bottomInLastPaper = 0;
							o[0].referenceElement.printTopInPaper = t.paperHeader;
							o.unshift(
								new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
									target: s,
									printLine: t.height,
									referenceElement: new _PrintReferenceElement__WEBPACK_IMPORTED_MODULE_5__.a({
										top: 0,
										left: 0,
										height: 0,
										width: 0,
										beginPrintPaperIndex: t.index,
										bottomInLastPaper: t.height,
										printTopInPaper: t.paperHeader,
									}),
								}),
							);
						}
						return o;
					}),
					(BasePrintElement.prototype.updatePanelHeight = function (h, p) {
						if ("none" == this.panel.panelPageRule) {
							var nmh = hinnn.pt.toMm(h);
							// 更改模板高度 paperType, width(mm), height(mm), rotate
							// this.panel.resize(void 0, t.mmwidth, nmh, !1);
							// 这个会更新模板的高度...
							// this.panel.target.css("height", nmh + "mm"), this.panel.target.attr("original-height", nmh);
							p.paperFooter = h;
							p.target.css("height", nmh + "mm"), p.target.attr("original-height", nmh);
						}
					}),
					(BasePrintElement.prototype.getBeginPrintTopInPaperByReferenceElement = function (t) {
						var e = this.options.getTop();
						return this.isHeaderOrFooter() || this.isFixed()
							? e
							: t.referenceElement.isPositionLeftOrRight(e)
								? t.referenceElement.printTopInPaper + (e - t.referenceElement.top)
								: t.referenceElement.bottomInLastPaper + (e - (t.referenceElement.top + t.referenceElement.height));
					}),
					(BasePrintElement.prototype.css = function (t, e) {
						var n = this,
							i = [],
							o = this.getConfigOptions();

						if (o) {
							var r;
							if (o.tabs && o.tabs.length) {
								r = [];
								o.tabs.forEach(function (n) {
									r = r.concat(n.options);
								});
							} else {
								r = o.supportOptions;
							}
							r &&
								r.forEach(function (e) {
									var o = _print_element_option_PrintElementOptionItemManager__WEBPACK_IMPORTED_MODULE_2__.a.getItem(
										e.name,
									);

									if (o && o.css) {
										var r = o.css(t, n.options.getValueFromOptionsOrDefault(e.name));
										r && i.push(r);
									}
								});
						}

						this.stylerCss(t, e);
					}),
					(BasePrintElement.prototype.stylerCss = function (t, e) {
						var n = this.getStyler();

						if (n) {
							var i = n(e, this.options, t, this._currenttemplateData);
							if (i)
								Object.keys(i).forEach(function (e) {
									t.css(e, i[e]);
								});
						}
					}),
					(BasePrintElement.prototype.getData = function (t) {
						var f = this.getField();
						return t
							? f
								? f.split(".").reduce((a, c) => (a ? a[c] : t ? t[c] : ""), !1) || ""
								: ""
							: this.printElementType.getData();
					}),
					(BasePrintElement.prototype.copyFromType = function () {
						var options = this.options,
							type = this.printElementType;
						var o = this.getConfigOptions();
						var names = [];
						if (o && o.tabs && o.tabs.length) {
							o.tabs.forEach(function (n) {
								n.options.forEach(function (e) {
									names.push(e.name);
								});
							});
						} else {
							names = o.supportOptions.map(function (e) {
								return e.name;
							});
						}
						Object.keys(type).forEach(function (e) {
							if (type[e] && "columns" != e && names.indexOf(e) > -1) {
								options[e] = "function" == _typeof(type[e]) ? type[e].toString() : type[e];
							}
						});
						return options;
					}),
					(BasePrintElement.prototype.getPrintElementOptionTabs = function () {
						if (this._printElementOptionTabs) return this._printElementOptionTabs;
						var tabs = [],
							e = this.getConfigOptions();
						if (e) {
							var t = e.tabs;
							t &&
								t.forEach(function (n, i) {
									tabs.push({ name: n.name, list: [] });
									n.options
										.filter(function (t) {
											return !t.hidden;
										})
										.forEach(function (e) {
											var n =
												_print_element_option_PrintElementOptionItemManager__WEBPACK_IMPORTED_MODULE_2__.a.getItem(
													e.name,
												);
											tabs[i].list.push(n);
										});
								});
						}
						return (
							(this._printElementOptionTabs = tabs),
							(this._printElementOptionItems = void 0),
							this._printElementOptionTabs
						);
					}),
					(BasePrintElement.prototype.getPrintElementOptionItems = function () {
						if (this._printElementOptionItems) return this._printElementOptionItems;
						var t = [],
							e = this.getConfigOptions();

						if (e) {
							var n;
							if (e.tabs && e.tabs.length) {
								n = [];
								e.tabs.forEach(function (n) {
									n = n.concat(n.options);
								});
							} else {
								n = e.supportOptions;
							}
							n &&
								n
									.filter(function (t) {
										return !t.hidden;
									})
									.forEach(function (e) {
										var n = _print_element_option_PrintElementOptionItemManager__WEBPACK_IMPORTED_MODULE_2__.a.getItem(
											e.name,
										);

										t.push(n);
									});
						}

						return (
							(this._printElementOptionItems = this.filterOptionItems(t.concat())),
							(this._printElementOptionTabs = void 0),
							this._printElementOptionItems
						);
					}),
					(BasePrintElement.prototype.getPrintElementOptionItemsByName = function (t) {
						var e = [],
							n = this.getConfigOptionsByName(t);

						if (n) {
							var i;
							if (n.tabs && n.tabs.length) {
								i = [];
								n.tabs.forEach(function (n) {
									i = i.concat(n.options);
								});
							} else {
								i = n.supportOptions;
							}
							i &&
								i
									.filter(function (t) {
										return !t.hidden;
									})
									.forEach(function (t) {
										var n = _print_element_option_PrintElementOptionItemManager__WEBPACK_IMPORTED_MODULE_2__.a.getItem(
											t.name,
										);

										e.push(n);
									});
						}

						return e.concat();
					}),
					(BasePrintElement.prototype.filterOptionItems = function (t) {
						return this.printElementType.field
							? t.filter(function (t) {
									return "field" != t.name;
								})
							: t;
					}),
					(BasePrintElement.prototype.createTempContainer = function () {
						this.removeTempContainer(),
							$("body").append(
								$(
									'<div class="hiprint_temp_Container hiprint-printPaper" style="overflow:hidden;height: 0px;box-sizing: border-box;"></div>',
								),
							);
					}),
					(BasePrintElement.prototype.removeTempContainer = function () {
						$(".hiprint_temp_Container").remove();
					}),
					(BasePrintElement.prototype.getTempContainer = function () {
						return $(".hiprint_temp_Container");
					}),
					(BasePrintElement.prototype.isHeaderOrFooter = function () {
						return (
							this.options.getTopInDesign() < this.panel.paperHeader ||
							this.options.getTopInDesign() >= this.panel.paperFooter
						);
					}),
					(BasePrintElement.prototype.delete = function () {
						this.designTarget && this.designTarget.remove();
					}),
					(BasePrintElement.prototype.setCurrenttemplateData = function (t) {
						this._currenttemplateData = t;
					}),
					(BasePrintElement.prototype.isFixed = function () {
						return this.options.fixed;
					}),
					(BasePrintElement.prototype.onRendered = function (t, e) {
						this.printElementType &&
							this.printElementType.onRendered &&
							this.printElementType.onRendered(e, this.options, t.getTarget());
					}),
					(BasePrintElement.prototype.createLineOfPosition = function (t) {
						var e = $(".toplineOfPosition.id" + this.id),
							topPos = $(".topPosition.id" + this.id),
							n = $(".leftlineOfPosition.id" + this.id),
							leftPos = $(".leftPosition.id" + this.id),
							i = $(".rightlineOfPosition.id" + this.id),
							o = $(".bottomlineOfPosition.id" + this.id);
						var config = _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance;
						if (e.length) e.css("top", this.options.displayTop(true));
						else {
							var e = $(
								'<div class="toplineOfPosition id' + this.id + '" style="position: absolute; width: 100%;"></div>',
							);
							e.css("top", this.options.displayTop(true)),
								e.css("width", t.displayWidth()),
								this.designTarget.parents(".hiprint-printPaper-content").append(e);
						}
						if (config.showPosition) {
							if (topPos.length) {
								topPos.toggleClass("topPosition-lineMode", config.positionLineMode);
								topPos.text(this.options.posTop() + (config.positionUnit ? "pt" : ""));
								topPos.css("top", this.options.posTop() - topPos.height() + "pt");
								if (config.positionLineMode) {
									topPos.css("left", this.options.posLeft() - topPos.width() / 2 + "pt");
								} else {
									topPos.css("left", this.options.posLeft() + 2 + "pt");
								}
								this.designTarget.find(".size-box") && this.designTarget.find(".size-box").toggleClass("hide", true);
							} else {
								var topPos = $('<div class="topPosition id' + this.id + '" style="position: absolute;"></div>');
								topPos.toggleClass("topPosition-lineMode", config.positionLineMode);
								topPos.text(this.options.posTop() + (config.positionUnit ? "pt" : ""));
								if (config.positionLineMode) {
									topPos.css("left", this.options.posLeft() - topPos.width() / 2 + "pt");
								} else {
									topPos.css("left", this.options.posLeft() + 2 + "pt");
								}
								this.designTarget.find(".size-box") && this.designTarget.find(".size-box").toggleClass("hide", true);
								this.designTarget.parents(".hiprint-printPaper-content").append(topPos);
								topPos.css("top", this.options.posTop() - topPos.height() + "pt");
							}
						}
						if (n.length) n.css("left", this.options.displayLeft(true));
						else {
							var r = $(
								'<div class="leftlineOfPosition id' + this.id + '" style="position: absolute;height: 100%;"></div>',
							);
							r.css("left", this.options.displayLeft(true)),
								r.css("height", t.displayHeight()),
								this.designTarget.parents(".hiprint-printPaper-content").append(r);
						}
						if (config.showPosition) {
							if (leftPos.length) {
								leftPos.text(this.options.posLeft() + (config.positionUnit ? "pt" : ""));
								leftPos.toggleClass("leftPosition-lineMode", config.positionLineMode);
								leftPos.css("left", this.options.posLeft() - leftPos.width() + "pt");
								if (config.positionLineMode) {
									leftPos.css("top", this.options.posTop() - leftPos.height() / 3 + "pt");
								} else {
									leftPos.css("top", this.options.posTop() + 2 + "pt");
								}
							} else {
								var leftPos = $('<div class="leftPosition id' + this.id + '" style="position: absolute;"></div>');
								leftPos.text(this.options.posLeft() + (config.positionUnit ? "pt" : ""));
								leftPos.toggleClass("leftPosition-lineMode", config.positionLineMode);
								if (config.positionLineMode) {
									leftPos.css("top", this.options.posTop() - leftPos.height() / 3 + "pt");
								} else {
									leftPos.css("top", this.options.posTop() + 2 + "pt");
								}
								this.designTarget.parents(".hiprint-printPaper-content").append(leftPos);
								leftPos.css("left", this.options.posLeft() - leftPos.width() + "pt");
							}
						}
						if (i.length) i.css("left", this.options.getLeft() + this.options.getWidth() + "pt");
						else {
							var a = $(
								'<div class="rightlineOfPosition id' + this.id + '" style="position: absolute;height: 100%;"></div>',
							);
							a.css("left", this.options.getLeft() + this.options.getWidth() + "pt"),
								a.css("height", t.displayHeight()),
								this.designTarget.parents(".hiprint-printPaper-content").append(a);
						}
						if (o.length) o.css("top", this.options.getTop() + this.options.getHeight() + "pt");
						else {
							var p = $(
								'<div class="bottomlineOfPosition id' + this.id + '" style="position: absolute;width: 100%;"></div>',
							);
							p.css("top", this.options.getTop() + this.options.getHeight() + "pt"),
								p.css("width", t.displayWidth()),
								this.designTarget.parents(".hiprint-printPaper-content").append(p);
						}
					}),
					(BasePrintElement.prototype.removeLineOfPosition = function () {
						$(".toplineOfPosition.id" + this.id).remove(),
							$(".topPosition.id" + this.id).remove(),
							this.designTarget.find(".size-box") && this.designTarget.find(".size-box").toggleClass("hide", false),
							$(".leftlineOfPosition.id" + this.id).remove(),
							$(".leftPosition.id" + this.id).remove(),
							$(".rightlineOfPosition.id" + this.id).remove(),
							$(".bottomlineOfPosition.id" + this.id).remove();
					}),
					(BasePrintElement.prototype.getFontList = function () {
						var t = this.options.fontList;
						return (
							t ||
							(t = _HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance
								.getPrintTemplateById(this.templateId)
								.getFontList())
						);
					}),
					(BasePrintElement.prototype.getFields = function () {
						if ("table" == this.printElementType.type) {
							var t = this.options.tableFields;
							return t;
						}
						var t = this.options.fields;
						return (
							t ||
							(t = _HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance
								.getPrintTemplateById(this.templateId)
								.getFields())
						);
					}),
					(BasePrintElement.prototype.getOnImageChooseClick = function () {
						var t = this.options.onImageChooseClick;
						return (
							t ||
							(t = _HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance
								.getPrintTemplateById(this.templateId)
								.getOnImageChooseClick())
						);
					}),
					(BasePrintElement.prototype.bingCopyEvent = function (t) {
						var n = this;
						t.keydown(function (r) {
							if (n._editing) {
								if (!r.altKey && 13 == r.keyCode) {
									n.updateByContent();
									return;
								}
							}
							// ctrl + c / command + c
							if ((r.ctrlKey || r.metaKey) && 67 == r.keyCode) {
								n.copyJson();
								r.preventDefault();
							}
						});
					}),
					(BasePrintElement.prototype.copyJson = function () {
						try {
							var n = this;
							// 使用textarea 存储复制的元素信息
							var copyArea = $("#copyArea");
							if (!copyArea.length)
								copyArea = $(
									'<textarea id="copyArea" style="position: absolute; left: 0px; top: 0px;opacity: 0"></textarea>',
								);
							$("body").append(copyArea);
							let copyElements = this.panel.printElements.filter((ele) => {
								return (
									"block" == ele.designTarget.children().last().css("display") &&
									!ele.printElementType.type.includes("table")
								);
							});
							copyElements = copyElements.map((ele) => {
								return {
									options: ele.options,
									printElementType: ele.printElementType,
									id: ele.id,
									templateId: ele.templateId,
								};
							});
							var json = JSON.stringify(copyElements);
							// var json = JSON.stringify({
							//   options: n.options,
							//   printElementType: n.printElementType,
							//   id: n.id,
							//   templateId: n.templateId
							// });
							copyArea.text(json);
							// 元素需可见才能选中复制到剪切板
							copyArea.css("visibility", "visible");
							// 尝试修复对复制元素的自动聚焦
							// copyArea.focus();
							if (copyArea.setSelectionRange) copyArea.setSelectionRange(0, copyArea.value.length);
							else copyArea.select();
							var flag = false;
							flag = document.execCommand("copy");
							copyArea.css("visibility", "hidden");
							// 获取元素焦点，不然无法粘贴（keydown问题）
							n.designTarget.focus();
							console.log("copyJson success");
						} catch (e) {
							flag = false;
							console.log("copyJson error", e);
						}
						return flag;
					}),
					(BasePrintElement.prototype.clone = function (t) {
						var n = this;
						let newObj = n.printElementType.createPrintElement();
						Object.keys(n.options).forEach(function (key) {
							newObj.options[key] = n.options[key];
						});
						return newObj;
					}),
					(BasePrintElement.prototype.getFormatter = function () {
						var formatter = void 0;
						if (
							(this.printElementType.formatter && (formatter = this.printElementType.formatter), this.options.formatter)
						)
							try {
								var s = "formatter=" + this.options.formatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return formatter;
					}),
					(BasePrintElement.prototype.getStyler = function () {
						var fnstyler = void 0;
						if ((this.printElementType.styler && (fnstyler = this.printElementType.styler), this.options.styler))
							try {
								var s = "fnstyler=" + this.options.styler;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return fnstyler;
					}),
					(BasePrintElement.prototype.bingKeyboardMoveEvent = function (t, e) {
						var n = this,
							i = void 0,
							o = void 0;
						t.attr("tabindex", "1"),
							t.keydown(function (r) {
								// 处理 table / input 输入时 删除元素问题
								if ("INPUT" == r.target.tagName) {
									return;
								}
								// 元素编辑
								if (n._editing && !r.altKey) {
									return;
								}
								// 元素禁止移动
								if (false === n.options.draggable) {
									return;
								}
								// 处理按住 ctrl / command 多选元素
								var els = n.panel.printElements.filter(function (t) {
									return (
										"block" == t.designTarget.children().last().css("display") &&
										!t.printElementType.type.includes("table")
									);
								});
								var isMultiple = els.length > 1;
								var movingDistance = _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.movingDistance;
								switch (r.keyCode) {
									// BackSpace/Delete 删除元素
									case 8:
									case 46:
										var templete = _HiPrintlib__WEBPACK_IMPORTED_MODULE_6__.a.instance.getPrintTemplateById(
											n.templateId,
										);
										templete.deletePrintElement(n);
										hinnn.event.trigger("hiprintTemplateDataChanged_" + n.templateId, "删除");
										hinnn.event.trigger("clearSettingContainer");
										// 获取到了template 拿到template里面所有被选中的元素
										els.forEach((ele) => {
											templete.deletePrintElement(ele);
											hinnn.event.trigger("hiprintTemplateDataChanged_" + ele.templateId, "删除");
										});
										hinnn.event.trigger("clearSettingContainer");
										break;
									case 37:
										i = n.options.getLeft();
										if (isMultiple) {
											els.forEach(function (t) {
												t.updatePositionByMultipleSelect(0 - movingDistance, 0);
											});
										} else {
											n.updateSizeAndPositionOptions(i - movingDistance), t.css("left", n.options.displayLeft());
										}
										r.preventDefault();
										break;

									case 38:
										o = n.options.getTop();
										if (isMultiple) {
											els.forEach(function (t) {
												t.updatePositionByMultipleSelect(0, 0 - movingDistance);
											});
										} else {
											n.updateSizeAndPositionOptions(void 0, o - movingDistance), t.css("top", n.options.displayTop());
										}
										r.preventDefault();
										break;

									case 39:
										i = n.options.getLeft();
										if (isMultiple) {
											els.forEach(function (t) {
												t.updatePositionByMultipleSelect(movingDistance, 0);
											});
										} else {
											n.updateSizeAndPositionOptions(i + movingDistance), t.css("left", n.options.displayLeft());
										}
										r.preventDefault();
										break;

									case 40:
										o = n.options.getTop();
										if (isMultiple) {
											els.forEach(function (t) {
												t.updatePositionByMultipleSelect(0, movingDistance);
											});
										} else {
											n.updateSizeAndPositionOptions(void 0, o + movingDistance), t.css("top", n.options.displayTop());
										}
										r.preventDefault();
								}
								if ([37, 38, 39, 40].includes(r.keyCode)) {
									hinnn.event.trigger("hiprintTemplateDataChanged_" + n.templateId, "键盘移动");
								}
							});
					}),
					(BasePrintElement.prototype.inRect = function (t) {
						var ptr = this.designPaper.scale || 1;
						var x1 = this.designTarget[0].offsetLeft,
							y1 = this.designTarget[0].offsetTop,
							h = this.designTarget[0].offsetHeight,
							w = this.designTarget[0].offsetWidth,
							x2 = x1 + w,
							y2 = y1 + h,
							ex1 = $(t.target[0]).position().left / ptr,
							ey1 = $(t.target[0]).position().top / ptr,
							eh = t.target[0].offsetHeight,
							ew = t.target[0].offsetWidth,
							ex2 = ex1 + ew,
							ey2 = ey1 + eh;
						return ex1 < x2 && ex2 > x1 && y1 < ey2 && y2 > ey1;
					}),
					(BasePrintElement.prototype.multipleSelect = function (t) {
						t ? this.designTarget.addClass("multipleSelect") : this.designTarget.removeClass("multipleSelect");
					}),
					(BasePrintElement.prototype.updatePositionByMultipleSelect = function (t, e) {
						if (false === this.options.draggable) return;
						this.updateSizeAndPositionOptions(t + this.options.getLeft(), e + this.options.getTop()),
							this.designTarget.css("left", this.options.displayLeft()),
							this.designTarget.css("top", this.options.displayTop());
					}),
					BasePrintElement
				);
			})();
	},
	function (t, e, n) {
		"use strict";

		var i = (function () {
				function t() {}

				return (
					(t.prototype.init = function (t) {
						(this.target = $('<input type="text" class="hitable-editor-text" value="" />')),
							t.getTarget().append(this.target),
							this.target.focus();
					}),
					(t.prototype.getValue = function () {
						return this.target.val();
					}),
					(t.prototype.setValue = function (t) {
						this.target.val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			o = (function () {
				function t() {
					this.text = new i();
				}

				return (
					Object.defineProperty(t, "Instance", {
						get: function get() {
							return t._instance || (t._instance = new t()), t._instance;
						},
						enumerable: !0,
						configurable: !0,
					}),
					t
				);
			})(),
			i2 = (function () {
				function t() {}
				// 表格头双击字段选择
				return (
					(t.prototype.init = function (e, i) {
						var n = `<select class="auto-submit" style="width:100%">\n                <option value="" disabled>${i18n.__("请选择字段")}</option>`;
						e.forEach(function (t, e) {
							if (t.field == i.field) {
								n += ' <option value="' + (t.field || "") + '" selected >' + (t.text || "") + "</option>";
							} else {
								n += ' <option value="' + (t.field || "") + '" >' + (t.text || "") + "</option>";
							}
						}),
							(n += " </select>");
						(this.target = $(n)), i.getTarget().append(this.target), this.target.focus();
					}),
					(t.prototype.getValue = function () {
						var val = this.target.val();
						var text = this.target.find('option[value="' + val + '"]').text();
						return text + "#" + val;
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			o2 = (function () {
				function t() {
					this.select = new i2();
				}

				return (
					Object.defineProperty(t, "Instance", {
						get: function get() {
							return t._instance || (t._instance = new t()), t._instance;
						},
						enumerable: !0,
						configurable: !0,
					}),
					t
				);
			})(),
			r = (function () {
				function t() {}

				return (
					Object.defineProperty(t, "Instance", {
						get: function get() {
							return o._instance || (t._instance = new t()), t._instance;
						},
						enumerable: !0,
						configurable: !0,
					}),
					(t.prototype.createEditor = function (t) {
						return $.extend({}, o.Instance[t]);
					}),
					(t.prototype.createSelect = function (t) {
						return $.extend({}, o2.Instance[t]);
					}),
					t
				);
			})(),
			a = n(10),
			p = n(14),
			s = n(11),
			l = (function () {
				function t() {}

				return (
					(t.prototype.init = function (t, e) {
						var n = this;
						(this.tableOptions = e),
							(this.title = t.title),
							(this.field = t.field),
							t
								.getTarget()
								.unbind("dblclick.hitable")
								.bind("dblclick.hitable", function () {
									(t.isEditing = !0), n.beginEdit(t);
								});
					}),
					(t.prototype.getDisplayHtml = function () {
						return this.title;
					}),
					(t.prototype.beginEdit = function (t) {
						var e = this;
						if (e.tableOptions.options.fields && e.tableOptions.options.fields.length) {
							(this.editor = r.Instance.createSelect("select")),
								t.getTarget().html(""),
								this.editor.init(e.tableOptions.options.fields, t),
								this.editor.setValue(this.field || ""),
								$(this.editor.target).keydown(function (n) {
									13 == n.keyCode && e.endEdit(t);
								}),
								$(this.editor.target).change(function (n) {
									e.endEdit(t);
								}),
								$(this.editor.target).blur(function (n) {
									e.endEdit(t);
								});
						} else {
							(this.editor = r.Instance.createEditor("text")),
								t.getTarget().html(""),
								this.editor.init(t),
								(this.title || this.field) &&
									(this.tableOptions.options.isEnableEditField
										? this.editor.setValue((this.title || "") + "#" + (this.field || ""))
										: this.editor.setValue(this.title || "")),
								$(this.editor.target).keydown(function (n) {
									13 == n.keyCode && e.endEdit(t);
								}),
								$(this.editor.target).blur(function (n) {
									e.endEdit(t);
								}),
								this.tableOptions.editingCell &&
									this.tableOptions.editingCell.id != t.id &&
									this.tableOptions.editingCell.innerElement.endEdit(this.tableOptions.editingCell),
								(this.tableOptions.editingCell = t);
						}
					}),
					(t.prototype.endEdit = function (t) {
						t.isEditing = 0;
						var e = this.editor.getValue();
						if (e) {
							if (this.tableOptions.options.isEnableEditField || this.tableOptions.options.fields) {
								var n = e.split("#");
								(t.title = this.title = n[0]), n.length > 0 && (t.columnId = t.field = this.field = n[1]);
								t.id && t.target.attr("id", t.id), t.columnId && t.target.attr("column-id", t.columnId);
								hinnn.event.trigger(
									"hiprintTemplateDataChanged_" + this.tableOptions.options.templateId,
									"调整表格列字段",
								);
							} else t.title = this.title = e;
						} else
							this.tableOptions.options.isEnableEditField
								? ((t.title = this.title = ""), (t.field = this.field = ""))
								: (t.title = this.title = "");
						this.editor.destroy(), t.getTarget().html(this.title);
					}),
					t
				);
			})(),
			u = (function () {
				return function (t) {
					(this.title = t.title),
						(this.field = t.field),
						(this.width = t.width),
						(this.align = t.align),
						(this.halign = t.halign),
						(this.vAlign = t.vAlign),
						(this.colspan = t.colspan),
						(this.rowspan = t.rowspan),
						(this.checked = t.checked),
						(this.columnId = t.columnId),
						(this.tableSummaryTitle = t.tableSummaryTitle),
						(this.tableSummaryText = t.tableSummaryText),
						(this.tableSummaryColspan = t.tableSummaryColspan),
						(this.tableSummary = t.tableSummary),
						(this.tableSummaryAlign = t.tableSummaryAlign),
						(this.tableSummaryNumFormat = t.tableSummaryNumFormat),
						(this.tableSummaryFormatter = t.tableSummaryFormatter),
						(this.showCodeTitle = t.showCodeTitle),
						(this.upperCase = t.upperCase),
						(this.renderFormatter = t.renderFormatter && t.renderFormatter.toString()),
						(this.formatter2 = t.formatter2 && t.formatter2.toString()),
						(this.styler2 = t.styler2 && t.styler2.toString()),
						(this.stylerHeader = t.stylerHeader && t.stylerHeader.toString()),
						(this.tableColumnHeight = t.tableColumnHeight),
						(this.tableTextType = t.tableTextType),
						(this.tableBarcodeMode = t.tableBarcodeMode),
						(this.tableQRCodeLevel = t.tableQRCodeLevel);
				};
			})(),
			d = (function () {
				function t() {
					this.id = s.a.createId();
				}

				return (
					(t.prototype.init = function (t, e, n, i) {
						(this.isHead = i), (this.rowId = n), (this.isEditing = !1);
						var o = /^[0-9]*$/;
						(this.target = t), (this.tableOptions = e);
						var r = this.target.attr("colspan");
						this.colspan = o.test(r) ? parseInt(r) : 1;
						var a = this.target.attr("rowspan");
						(this.rowspan = o.test(a) ? parseInt(a) : 1), this.initEvent(), this.isHead && this.initInnerEelement();
					}),
					(t.prototype.beginEdit = function () {
						if (!this.isEditing && this.tableOptions.isEnableEdit && this.tableOptions.onBeforEdit(this)) {
							var t = this.getValue();
							(this.editor = r.Instance.createEditor("text")),
								(this.isEditing = !0),
								(this.tableOptions.editingCell = this),
								this.target.html(""),
								this.editor.init(this),
								this.editor.setValue(t);
						}
					}),
					(t.prototype.endEdit = function () {
						this.isEditing = !1;
						var t = this.editor.getValue();
						this.editor.destroy(), this.target.html(t);
					}),
					(t.prototype.getTarget = function () {
						return this.target;
					}),
					(t.prototype.getValue = function () {
						return this.target.html();
					}),
					(t.prototype.setValue = function (t) {}),
					(t.prototype.initInnerEelement = function () {
						(this.innerElement = new l()), this.innerElement.init(this, this.tableOptions);
					}),
					(t.prototype.initEvent = function () {}),
					(t.prototype.isXYinCell = function (t, e) {
						var n = new a.b({
							x: t,
							y: e,
							height: 0,
							width: 0,
						});
						return this.isOverlap(n);
					}),
					(t.prototype.getTableRect = function () {
						return new a.b({
							x: this.target.offset().left,
							y: this.target.offset().top,
							height: this.target[0].offsetHeight,
							width: this.target[0].offsetWidth,
						});
					}),
					(t.prototype.isOverlap = function (t) {
						var e = this.getTableRect();
						return t.x + t.width > e.x && e.x + e.width > t.x && t.y + t.height > e.y && e.y + e.height > t.y;
					}),
					(t.prototype.isInRect = function (t) {
						var e = t.rect,
							n = this.getTableRect();

						// if (e.x + e.width > n.x && n.x + n.width > e.x && e.y + e.height > n.y && n.y + n.height > e.y) {
						if (n.x >= e.x && n.x + n.width <= e.x + e.width && n.y >= e.y && n.y + n.height <= e.y + e.height) {
							var i = p.a.mergeRect(e, n);
							return JSON.stringify(e) == JSON.stringify(i) || ((t.changed = !0), (t.rect = i), !0);
						}

						return !1;
					}),
					(t.prototype.isSelected = function () {
						return this.target.hasClass("selected");
					}),
					(t.prototype.select = function () {
						this.target.addClass("selected");
					}),
					(t.prototype.isHeader = function () {
						return !1;
					}),
					(t.prototype.setAlign = function (t) {
						(this.align = t), t ? this.target.css("text-align", t) : (this.target[0].style.textAlign = "");
					}),
					(t.prototype.setVAlign = function (t) {
						(this.vAlign = t), t ? this.target.css("vertical-align", t) : (this.target[0].style.verticalAlign = "");
					}),
					(t.prototype.getEntity = function () {
						return new u(this);
					}),
					t
				);
			})();

		n.d(e, "a", function () {
			return f;
		});

		var _c,
			h =
				((_c = function c(t, e) {
					return (_c =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(t, e);
				}),
				function (t, e) {
					function n() {
						this.constructor = t;
					}

					_c(t, e), (t.prototype = null === e ? Object.create(e) : ((n.prototype = e.prototype), new n()));
				}),
			f = (function (t) {
				function e(e) {
					var n = this;
					return (
						(e = e || {}),
						((n = t.call(this) || this).width = e.width ? parseFloat(e.width.toString()) : 100),
						(n.title = e.title),
						(n.descTitle = e.descTitle),
						(n.field = e.field),
						(n.fixed = e.fixed),
						(n.rowspan = e.rowspan ? parseInt(e.rowspan) : 1),
						(n.colspan = e.colspan ? parseInt(e.colspan) : 1),
						(n.align = e.align),
						(n.halign = e.halign),
						(n.vAlign = e.vAlign),
						(n.formatter = e.formatter),
						(n.styler = e.styler),
						(n.renderFormatter = e.renderFormatter),
						(n.formatter2 = e.formatter2),
						(n.styler2 = e.styler2),
						(n.stylerHeader = e.stylerHeader),
						(n.checkbox = e.checkbox),
						(n.checked = 0 != e.checked),
						(n.columnId = e.columnId || e.field),
						(n.tableColumnHeight = e.tableColumnHeight),
						(n.tableTextType = e.tableTextType),
						(n.tableBarcodeMode = e.tableBarcodeMode),
						(n.tableQRCodeLevel = e.tableQRCodeLevel),
						(n.tableSummaryTitle = e.tableSummaryTitle),
						(n.tableSummaryText = e.tableSummaryText),
						(n.tableSummaryColspan = e.tableSummaryColspan),
						(n.tableSummary = e.tableSummary),
						(n.tableSummaryAlign = e.tableSummaryAlign),
						(n.tableSummaryNumFormat = e.tableSummaryNumFormat),
						(n.tableSummaryFormatter = e.tableSummaryFormatter),
						(n.showCodeTitle = e.showCodeTitle),
						(n.upperCase = e.upperCase),
						n
					);
				}

				return h(e, t), (e.prototype.css = function (t) {}), e;
			})(d);
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return i;
		});

		var i = (function () {
			return function (t) {
				(this.printLine = t.printLine), (this.target = t.target), (this.referenceElement = t.referenceElement);
			};
		})();
	},
	function (module, __webpack_exports__, __webpack_require__) {
		"use strict";

		__webpack_require__.d(__webpack_exports__, "a", function () {
			return TableExcelHelper;
		});

		var _ReconsitutionTableColumns__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19),
			_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0),
			TableExcelHelper = (function () {
				function TableExcelHelper() {}

				return (
					(TableExcelHelper.createTableHead = function (t, e) {
						for (
							var n = TableExcelHelper.reconsitutionTableColumnTree(t),
								i = $("<thead></thead>"),
								colgroup = $("<colgroup></colgroup>"),
								o = TableExcelHelper.getColumnsWidth(n, e),
								r = function r(t) {
									var e = $("<tr></tr>");
									// 重置 colgroup，解决多行表头 col 添加错误问题，仅以最后一行添加
									colgroup = $("<colgroup></colgroup>");
									n[t]
										.filter(function (t) {
											return t.checked;
										})
										.forEach(function (t) {
											var n = $("<td></td>");
											t.id && n.attr("id", t.id),
												t.columnId && n.attr("column-id", t.columnId),
												(t.align || t.halign) && n.css("text-align", t.halign || t.align),
												t.vAlign && n.css("vertical-align", t.vAlign),
												t.colspan > 1 && n.attr("colspan", t.colspan),
												t.rowspan > 1 && n.attr("rowspan", t.rowspan),
												n.html(t.title),
												o[t.id]
													? ((t.hasWidth = !0),
														(t.targetWidth = o[t.id]),
														n.attr("haswidth", "haswidth"),
														n.css("width", o[t.id] + "pt"))
													: (t.hasWidth = !1);
											var s = TableExcelHelper.getHeaderStyler(t);
											if (s) {
												var l = s(t);
												if (l)
													Object.keys(l).forEach(function (t) {
														n.css(t, l[t]);
													});
											}
											e.append(n);
											colgroup.append(`<col column-id="${t.columnId}" width="${t.width}pt"></col>`);
										}),
										i.append(e);
								},
								a = 0;
							a < n.totalLayer;
							a++
						) {
							r(a);
						}
						return TableExcelHelper.syncTargetWidthToOption(t), [i, colgroup];
					}),
					(TableExcelHelper.createTableFooter = function (t, e, n, i, o, r) {
						// n=>options e=>表格所有数据 o=>所有打印数据 r=>表格每页数据
						var a = $("<tfoot></tfoot>"),
							p = this.getFooterFormatter(n, i);
						var tst = this.tableSummaryTitle;
						let tSumData = n.tableFooterRepeat == "last" ? e : r;
						let idx = n.columns.length - 1;
						var rowColumns = this.rowColumns || n.columns[idx].columns;
						if (
							n.tableFooterRepeat != "no" &&
							rowColumns.some(function (column) {
								return column.tableSummary;
							})
						) {
							var tableFooter = $("<tr></tr>");
							rowColumns
								.filter(function (t) {
									return t.checked;
								})
								.forEach(function (column) {
									var fieldData = tSumData
										.filter(function (row) {
											return row && row[column.field];
										})
										.map(function (row) {
											return new RegExp("^-?(0|[1-9]\\d*)(\\.\\d+)?").test(row[column.field])
												? Number(row[column.field])
												: 0;
										});
									var text = column.tableSummaryText;
									var numF = column.tableSummaryNumFormat || 2;
									var style = `text-align: ${column.tableSummaryAlign || "center"}`;
									var colspan = column.tableSummaryColspan == void 0 ? 1 : column.tableSummaryColspan;
									var upperCaseType = column.upperCase;
									let { toUpperCase, numFormat } = _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_1__.a;
									var tableSummaryFormatter = TableExcelHelper.getColumnTableSummaryFormatter(column);
									var formatterResult = tableSummaryFormatter ? tableSummaryFormatter(column, fieldData, e, n) : "";
									if (formatterResult) {
										tableFooter.append(formatterResult);
										return;
									}
									switch (column.tableSummary) {
										case "count":
											var title = tst(column, text || `${i18n.__("计数")}:`, o);
											var count = toUpperCase(upperCaseType, tSumData.filter((i) => i).length || 0);
											tableFooter.append(`<td style="${style}" colspan="${colspan}">${title}${count}</td>`);
											break;
										case "sum":
											var sum = parseFloat(
												Number(
													fieldData.reduce(function (prev, cur) {
														return prev + cur;
													}, 0),
												),
											);
											sum = toUpperCase(upperCaseType, numFormat(sum, numF));
											var title = tst(column, text || `${i18n.__("合计")}:`, o);
											tableFooter.append(`<td style="${style}" colspan="${colspan}">${title}${sum}</td>`);
											break;
										case "avg":
											var sum = parseFloat(
												Number(
													fieldData.reduce(function (prev, cur) {
														return prev + cur;
													}, 0),
												),
											);
											var avg = parseFloat(Number(sum / (fieldData.length || 1)));
											avg = toUpperCase(upperCaseType, numFormat(avg, numF));
											var title = tst(column, text || `${i18n.__("平均值")}:`, o);
											tableFooter.append(`<td style="${style}" colspan="${colspan}">${title}${avg}</td>`);
											break;
										case "min":
											var min = Math.min(...fieldData) || 0;
											min == Infinity && (min = 0);
											min = toUpperCase(upperCaseType, numFormat(min, numF));
											var title = tst(column, text || `${i18n.__("最小值")}:`, o);
											tableFooter.append(`<td style="${style}" colspan="${colspan}">${title}${min || 0}</td>`);
											break;
										case "max":
											var max = Math.max(...fieldData);
											max == -Infinity && (max = 0);
											max = toUpperCase(upperCaseType, numFormat(max, numF));
											var title = tst(column, text || `${i18n.__("最大值")}:`, o);
											tableFooter.append(`<td style="${style}" colspan="${colspan}">${title}${max || 0}</td>`);
											break;
										case "text":
											tableFooter.append(`<td style="${style}" colspan="${colspan}">${text || ""}</td>`);
											break;
										default:
											if (colspan >= 1) {
												tableFooter.append(`<td style="${style}" colspan="${colspan}">${text || ""}</td>`);
											}
											break;
									}
								});
							a.append(tableFooter);
						}
						if (p) {
							a.append(p(n, e, o, r));
						}
						return a;
					}),
					(TableExcelHelper.tableSummaryTitle = function (column, title, data) {
						var s = column.tableSummaryTitle == undefined || column.tableSummaryTitle == true;
						return s ? `${title}` : data ? `` : `<span style="color:firebrick">${title}</span>`;
					}),
					(TableExcelHelper.createTableRow = function (t, e, printData, n, i) {
						var h = this;
						var o = TableExcelHelper.reconsitutionTableColumnTree(t),
							r = $("<tbody></tbody>");
						var gff = h.getGroupFieldsFormatter(n, i);
						var groupFields = gff ? (n.groupFields = gff(i, n, e)) : i.groupFields ? i.groupFields : [];
						(e || (e = []), groupFields.length)
							? _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_1__.a
									.groupBy(e, groupFields, function (t) {
										var e = {};
										return (
											groupFields.forEach(function (n) {
												return (e[n] = t[n]);
											}),
											e
										);
									})
									.forEach(function (t) {
										var groupFormatter = h.getGroupFormatter(n, i);
										if (groupFormatter) {
											let result = groupFormatter(o.colspan, e, printData, t, n);
											if ($(result).is("tr")) {
												r.append(result);
											} else if ($(result).is("td")) {
												r.append(`<tr>${result}</tr>`);
											} else {
												r.append(`<tr><td>${result}</td></tr>`);
											}
										}
										var groupFooterFormatter = h.getGroupFooterFormatter(n, i);
										var groupData = t;
										if (
											(groupData.rows.forEach(function (t, rowIndex) {
												var e = TableExcelHelper.createRowTarget(o, t, n, i, rowIndex, groupData.rows, printData);
												r.append(e);
											}),
											groupFooterFormatter)
										) {
											let result = groupFooterFormatter(o.colspan, e, printData, t, n);
											if ($(result).is("tr")) {
												r.append(result);
											} else if ($(result).is("td")) {
												r.append(`<tr>${result}</tr>`);
											} else {
												r.append(`<tr><td>${result}</td></tr>`);
											}
										}
									})
							: e.forEach(function (t, rowIndex) {
									var row = TableExcelHelper.createRowTarget(o, t, n, i, rowIndex, e, printData);
									r.append(row);
								});
						return r;
					}),
					(TableExcelHelper.createRowTarget = function (t, e, n, i, rowIndex, tableData, printData) {
						var o = $("<tr></tr>");
						var columns = t.rowColumns.filter(function (t) {
							return t.checked;
						});
						o.data("rowData", e),
							t.rowColumns
								.filter(function (t) {
									return t.checked;
								})
								.forEach(function (t, i) {
									if (!t.checked) return;
									var rowsColumnsMerge = "";
									if (n.rowsColumnsMerge) {
										eval("rowsColumnsMerge=" + n.rowsColumnsMerge);
										var rowsColumnsArr = rowsColumnsMerge(e, t, i, rowIndex, tableData, printData) || [1, 1];
										var r = $(
											`<td style = 'display:${!(rowsColumnsArr[0] && rowsColumnsArr[1]) ? "none" : ""}' rowspan = '${rowsColumnsArr[0]}' colspan = '${rowsColumnsArr[1]}'></td>`,
										);
									} else {
										var r = $("<td></td>");
									}
									// 设计时不去计算宽度
									if (
										e &&
										Object.keys(e).length > 0 &&
										("first" == n.tableHeaderRepeat || "none" == n.tableHeaderRepeat)
									) {
										t.field && r.attr("field", t.field),
											t.align && r.css("text-align", t.align),
											t.vAlign && r.css("vertical-align", t.vAlign);
										// 无表头时跨行无效，需根据所跨行数重新计算宽度
										if (n.rowsColumnsMerge) {
											if (rowsColumnsArr[1] > 1) {
												var width = 0;
												columns.forEach((item, index) => {
													if (index >= i && index < i + rowsColumnsArr[1]) {
														width += item.width;
													}
												});
											}
										}
										r.css("width", (width || t.width) + "pt");
									} else {
										t.field && r.attr("field", t.field),
											t.align && r.css("text-align", t.align),
											t.vAlign && r.css("vertical-align", t.vAlign);
									}
									var a = TableExcelHelper.getColumnFormatter(t),
										p = a ? a(e[t.field], e, i, n) : e[t.field];
									var rf = TableExcelHelper.getColumnRenderFormatter(t);
									if (rf) {
										r.html(rf(e[t.field], e, i, n, rowIndex));
										//表格内容插入二维码等
									} else if ("text" == t.tableTextType || t.tableTextType == void 0) r.html(p);
									else {
										if ("barcode" == t.tableTextType) {
											r.html(
												'<svg width="100%" display="block" height="100%" class="hibarcode_imgcode" preserveAspectRatio="none slice"></svg ><div class="hibarcode_displayValue"></div>',
											);
											try {
												p
													? (JsBarcode(r.find(".hibarcode_imgcode")[0], p, {
															format: t.tableBarcodeMode || "CODE128A",
															width: 1,
															textMargin: -1,
															lineColor: "#000000",
															margin: 0,
															height: parseInt(10),
															displayValue: !1,
														}),
														r.find(".hibarcode_imgcode").attr("height", t.tableColumnHeight || 30 + "pt"),
														r.find(".hibarcode_imgcode").css("margin", "5pt 10pt"),
														r.find(".hibarcode_imgcode").attr("width", "calc(100% - 20pt)"))
													: r.html("");
												// this.options.hideTitle || r.find(".hibarcode_displayValue").html(n)
												if (t.showCodeTitle) {
													r.find(".hibarcode_displayValue").html(p);
												}
											} catch (t) {
												console.log(t), r.html(`${i18n.__("此格式不支持该文本")}`);
											}
										}
										if ("image" == t.tableTextType) {
											r.html("");
											if (p) {
												var imagebox = $('<div><img style = "max-width:100%;max-height:100%"/></div>');
												imagebox.find("img").attr("src", p);
												console.log(imagebox.find("img").css("width"));
												r.html(imagebox);
											}
										}
										if ("qrcode" == t.tableTextType) {
											r.html("");
											try {
												var qrcodebox = $('<div style="margin:2pt 0pt" class="hiqrcode_imgcode"></div>');

												if (p) {
													var l = parseInt(t.width || t.targetWidth || 20),
														u = parseInt(t.tableColumnHeight || 20);
													qrcodebox.css("height", (l > u ? u : l) + "pt");
													new QRCode(qrcodebox[0], {
														width: l > u ? u : l,
														height: l > u ? u : l,
														colorDark: "#000000",
														useSVG: !0,
														correctLevel: t.tableQRCodeLevel || 0,
													}).makeCode(p);
													// r.find(".hiqrcode_imgcode").css("margin", '5pt 0pt'),
													r.html(qrcodebox);
													if (t.showCodeTitle) {
														r.append('<div class="hiqrcode_displayValue"></div>');
														r.find(".hiqrcode_displayValue").html(p);
													}
												}
											} catch (t) {
												console.log(t), r.html(`${i18n.__("二维码生成失败")}`);
											}
										}
										if ("sequence" === t.tableTextType) {
											r.html(rowIndex + 1);
										}
									}
									var s = TableExcelHelper.getColumnStyler(t);

									if (s) {
										var l = s(e[t.field], e, i, n);
										if (l)
											Object.keys(l).forEach(function (t) {
												r.css(t, l[t]);
											});
									}

									o.append(r);
								});
						var r = TableExcelHelper.getRowStyler(n, i);

						if (r) {
							var a = r(e, n);
							if (a)
								Object.keys(a).forEach(function (t) {
									o.css(t, a[t]);
								});
						}

						return o;
					}),
					(TableExcelHelper.createEmptyRowTarget = function (t, tableElement) {
						var e = TableExcelHelper.reconsitutionTableColumnTree(t),
							n = $("<tr></tr>");
						e.rowColumns
							.filter(function (t) {
								return t.checked;
							})
							.forEach(function (t, e) {
								var i = $("<td></td>");
								t.field && i.attr("field", t.field),
									t.align && i.css("text-align", t.align),
									t.vAlign && i.css("vertical-align", t.vAlign),
									n.append(i);
							});
						if (tableElement && tableElement.options.tableBodyRowHeight) {
							n.find("td:not([rowspan])").css("height", tableElement.options.tableBodyRowHeight + "pt");
						}
						return n;
					}),
					(TableExcelHelper.getColumnsWidth = function (t, e) {
						var n = {},
							i = TableExcelHelper.allAutoWidth(t),
							o = TableExcelHelper.allFixedWidth(t);
						return (
							t.rowColumns
								.filter(function (t) {
									return t.checked;
								})
								.forEach(function (t) {
									if (t.fixed) n[t.id] = t.width;
									else {
										var r = e - o,
											a = (t.width / i) * (r > 0 ? r : 0);
										n[t.id] = a;
									}
								}),
							n
						);
					}),
					(TableExcelHelper.resizeTableCellWidth = function (t, e, n) {
						var i = TableExcelHelper.reconsitutionTableColumnTree(e),
							o = TableExcelHelper.getColumnsWidth(i, n);
						t.find("thead tr td[haswidth]").map(function (t, e) {
							var n = $(e).attr("id"),
								i = o[n];
							$(e).css("width", i + "pt");
						});
					}),
					(TableExcelHelper.allAutoWidth = function (t) {
						var e = 0,
							n = {};
						return (
							t.rowColumns
								.filter(function (t) {
									return t.checked;
								})
								.forEach(function (t) {
									n[t.id] ? (n[t.id] = 0) : (n[t.id] = t.width);
									e += t.fixed ? 0 : n[t.id];
								}),
							e
						);
					}),
					(TableExcelHelper.allFixedWidth = function (t) {
						var e = 0,
							n = {};
						return (
							t.rowColumns
								.filter(function (t) {
									return t.checked;
								})
								.forEach(function (t) {
									n[t.id] ? (n[t.id] = 0) : (n[t.id] = t.width);
									e += t.fixed ? n[t.id] : 0;
								}),
							e
						);
					}),
					(TableExcelHelper.reconsitutionTableColumnTree = function (t, e, n) {
						var i = e || new _ReconsitutionTableColumns__WEBPACK_IMPORTED_MODULE_0__.a();
						i.colspan = 0;

						for (
							var o = function o(e) {
									(i.totalLayer = e + 1),
										(i[e] = t[e].columns),
										0 == e &&
											t[e].columns.forEach(function (t) {
												0 == e && (i.colspan += t.colspan);
											});
								},
								r = 0;
							r < t.length;
							r++
						) {
							o(r);
						}

						return (i.rowColumns = TableExcelHelper.getOrderdColumns(i)), i;
					}),
					(TableExcelHelper.syncTargetWidthToOption = function (t) {
						t.forEach(function (t) {
							t.columns.forEach(function (t) {
								t.hasWidth && (t.width = t.targetWidth);
							});
						});
					}),
					(TableExcelHelper.getGroupFieldsFormatter = function (options, tablePrintElementType) {
						var groupFieldsFormatter = void 0;
						if (tablePrintElementType.groupFields && tablePrintElementType.groupFields.length) {
							var arr =
								typeof tablePrintElementType.groupFields == "string"
									? tablePrintElementType.groupFields
									: JSON.stringify(tablePrintElementType.groupFields);
							options.groupFieldsFormatter = "function(type,options,data){ return " + arr + " }";
						}
						if (
							(tablePrintElementType.groupFieldsFormatter &&
								(groupFieldsFormatter = tablePrintElementType.groupFieldsFormatter),
							options.groupFieldsFormatter)
						)
							try {
								var s = "groupFieldsFormatter=" + options.groupFieldsFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return groupFieldsFormatter;
					}),
					(TableExcelHelper.getGroupFormatter = function (options, tablePrintElementType) {
						var groupFormatter = void 0;
						if (
							(tablePrintElementType.groupFormatter && (groupFormatter = tablePrintElementType.groupFormatter),
							options.groupFormatter)
						)
							try {
								var s = "groupFormatter=" + options.groupFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return groupFormatter;
					}),
					(TableExcelHelper.getGroupFooterFormatter = function (options, tablePrintElementType) {
						var groupFooterFormatter = void 0;
						if (
							(tablePrintElementType.groupFooterFormatter &&
								(groupFooterFormatter = tablePrintElementType.groupFooterFormatter),
							options.groupFooterFormatter)
						)
							try {
								var s = "groupFooterFormatter=" + options.groupFooterFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return groupFooterFormatter;
					}),
					(TableExcelHelper.getFooterFormatter = function (options, tablePrintElementType) {
						var footerFormatter = void 0;
						if (
							(tablePrintElementType.footerFormatter && (footerFormatter = tablePrintElementType.footerFormatter),
							options.footerFormatter)
						)
							try {
								var s = "footerFormatter=" + options.footerFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return footerFormatter;
					}),
					(TableExcelHelper.getRowStyler = function (options, tablePrintElementType) {
						var rowStyler = void 0;
						if ((tablePrintElementType.rowStyler && (rowStyler = tablePrintElementType.rowStyler), options.rowStyler))
							try {
								var s = "rowStyler=" + options.rowStyler;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return rowStyler;
					}),
					(TableExcelHelper.getColumnTableSummaryFormatter = function (column) {
						var tableSummaryFormatter = void 0;
						if (
							(column.tableSummaryFormatter && (tableSummaryFormatter = column.tableSummaryFormatter),
							column.tableSummaryFormatter)
						)
							try {
								var s = "tableSummaryFormatter=" + column.tableSummaryFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return tableSummaryFormatter;
					}),
					(TableExcelHelper.getColumnStyler = function (column) {
						var styler = void 0;
						if ((column.styler && (styler = column.styler), column.styler2))
							try {
								var s = "styler=" + column.styler2;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return styler;
					}),
					(TableExcelHelper.getHeaderStyler = function (column) {
						var stylerHeader = void 0;
						if ((column.stylerHeader && (stylerHeader = column.stylerHeader), column.stylerHeader))
							try {
								var s = "stylerHeader=" + column.stylerHeader;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return stylerHeader;
					}),
					(TableExcelHelper.getColumnRenderFormatter = function (column) {
						var renderFormatter = void 0;
						if ((column.renderFormatter && (renderFormatter = column.renderFormatter), column.renderFormatter))
							try {
								var s = "renderFormatter=" + column.renderFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return renderFormatter;
					}),
					(TableExcelHelper.getColumnFormatter = function (column) {
						var formatter = void 0;
						if ((column.formatter && (formatter = column.formatter), column.formatter2))
							try {
								var s = "formatter=" + column.formatter2;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return formatter;
					}),
					(TableExcelHelper.getOrderdColumns = function (t) {
						// 新数据
						let newColumns = {};
						// 遍历所有 rawData columns，先处理 colspan 防止后面 rowspan 插入取下标错误
						for (let i = 0; i < t.totalLayer; i++) {
							newColumns[i] = []; // 新数据中添加对应 columns
							t[i].forEach((column, columnIdx) => {
								newColumns[i].push(...new Array(column.colspan).fill({ ...column, colspan: 1 })); // 创建 colspan 个
							});
						}
						// 再次遍历 rawData columns，处理 rowspan 给后面 columns 插入相同 column
						for (let i = 0; i < t.totalLayer; i++) {
							newColumns[i].forEach((column, columnIdx) => {
								for (let n = 1; n < column.rowspan; n++) {
									newColumns[i + n].splice(columnIdx, 0, { ...column, rowspan: 1 });
								}
							});
						}
						// 把上层/其他层的 field 赋值给最下层
						let lastColumns = [];
						for (let i = 0; i < t.totalLayer; i++) {
							if (i >= t.totalLayer - 1) {
								newColumns[i].forEach((column, columnIdx) => {
									if (!column.field) {
										column.field = lastColumns[columnIdx];
									}
								});
							} else {
								newColumns[i].forEach((column, columnIdx) => {
									if (i == 0) {
										lastColumns.push(column.field || "");
									} else {
										column.field && (lastColumns[columnIdx] = column.field);
									}
								});
							}
						}
						this.rowColumns = newColumns[t.totalLayer - 1];
						return newColumns[t.totalLayer - 1];
					}),
					TableExcelHelper
				);
			})();
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return i;
		});

		var i = (function () {
			function t(t) {
				(this.top = t.top),
					(this.left = t.left),
					(this.height = t.height),
					(this.width = t.width),
					(this.bottomInLastPaper = t.bottomInLastPaper),
					(this.beginPrintPaperIndex = t.beginPrintPaperIndex),
					(this.printTopInPaper = t.printTopInPaper),
					(this.endPrintPaperIndex = t.endPrintPaperIndex);
			}

			return (
				(t.prototype.isPositionLeftOrRight = function (t) {
					return this.top <= t && this.top + this.height > t;
				}),
				t
			);
		})();
	},
	function (t, e, n) {
		"use strict";

		var i = (function () {
				function t() {
					this.name = "lineHeight";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("line-height", e + "pt"), "line-height:" + e + "pt";
							t[0].style.lineHeight = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字体行高")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        <option value="22.5" >22.5pt</option>\n        <option value="23.25" >23.25pt</option>\n        <option value="24" >24pt</option>\n        <option value="24.75" >24.75pt</option>\n        <option value="25.5" >25.5pt</option>\n        <option value="26.25" >26.25pt</option>\n        <option value="27" >27pt</option>\n        <option value="27.75" >27.75pt</option>\n        <option value="28.5" >28.5pt</option>\n        <option value="29.25" >29.25pt</option>\n        <option value="30" >30pt</option>\n        <option value="30.75" >30.75pt</option>\n        <option value="31.5" >31.5pt</option>\n        <option value="32.25" >32.25pt</option>\n        <option value="33" >33pt</option>\n        <option value="33.75" >33.75pt</option>\n        <option value="34.5" >34.5pt</option>\n        <option value="35.25" >35.25pt</option>\n        <option value="36" >36pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			fontFamily = (function () {
				function t() {
					this.name = "fontFamily";
				}
				return (
					(t.prototype.createTarget = function (t) {
						var e = void 0;
						if ((t && (e = t.getFontList()), e)) {
							var n = `<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字体")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>`;
							e.forEach(function (t, e) {
								n += ' <option value="' + (t.value || "") + '" >' + (t.title || "") + "</option>";
							}),
								(n += " </select>\n            </div>\n        </div>"),
								(this.target = $(n));
						} else {
							this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字体")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="SimSun" >${i18n.__("宋体")}</option>\n            <option value="Microsoft YaHei" >${i18n.__("微软雅黑")}</option>\n        </select>\n        </div>\n    </div>`,
							);
						}
						return this.target;
					}),
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("font-family", e), "font-family:" + e;
							t[0].style.fontFamily = "inherit"; // 从父元素继承字体, 否则模板字体无效
						}
						return null;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			r = (function () {
				function t() {
					this.name = "fontSize";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("font-size", e + "pt"), "font-size:" + e + "pt";
							t[0].style.fontSize = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字体大小")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			a = (function () {
				function t() {
					this.name = "fontWeight";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("font-weight", e), "font-weight:" + e;
							t[0].style.fontWeight = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字体粗细")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="lighter" >${i18n.__("更细")}</option>\n        <option value="bold" >${i18n.__("粗体")}</option>\n        <option value="bolder" >${i18n.__("粗体+")}</option>\n            <option value="100" >100</option>\n            <option value="200" >200</option>\n            <option value="300" >300</option>\n            <option value="400" >400</option>\n            <option value="500" >500</option>\n            <option value="600" >600</option>\n            <option value="700" >700</option>\n            <option value="800" >800</option>\n            <option value="900" >900</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			p = (function () {
				function t() {
					this.name = "letterSpacing";
				}
				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("letter-spacing", e + "pt"), "letter-spacing:" + e + "pt";
							t[0].style.letterSpacing = "";
						}
						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字间距")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			s = (function () {
				function t() {
					this.name = "textAlign";
				}
				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e)
								return (
									t.css("text-align", e),
									"justify" == e
										? (t.css("text-align-last", "justify"), t.css("text-justify", "distribute-all-lines"))
										: ((t[0].style.textAlignLast = ""), (t[0].style.textJustify = "")),
									"text-align:" + e
								);
							(t[0].style.textAlign = ""), (t[0].style.textAlignLast = ""), (t[0].style.textJustify = "");
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("左右对齐")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="left" >${i18n.__("居左")}</option>\n        <option value="center" >${i18n.__("居中")}</option>\n        <option value="right" >${i18n.__("居右")}</option>\n        <option value="justify" >${i18n.__("两端对齐")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			l = (function () {
				function t() {
					this.name = "hideTitle";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("标题显示隐藏")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="false" >${i18n.__("显示")}</option>\n            <option value="true" >${i18n.__("隐藏")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("true" == this.target.find("select").val()) return !0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			u = (function () {
				function t() {
					this.name = "tableBorder";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("table").length) {
							if ("border" == e || void 0 == e) return t.find("table").css("border", "1px solid"), "border:1px solid";
							"noBorder" == e ? t.find("table").css("border", "0px solid") : (t.find("table")[0].style.border = "");
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表格边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n            <select class="auto-submit">\n            <option value="" >${i18n.__("默认")}</option>\n            <option value="border" >${i18n.__("有边框")}</option>\n            <option value="noBorder" >${i18n.__("无边框")}</option>\n            </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			d = (function () {
				function t() {
					this.name = "tableHeaderBorder";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("thead tr").length) {
							if ("border" == e || void 0 == e)
								return t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-all");
							"noBorder" == e
								? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-none")
								: "leftBorder" == e
									? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-left")
									: "rightBorder" == e
										? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-right")
										: "leftRightBorder" == e
											? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-lr")
											: "topBorder" == e
												? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-top")
												: "bottomBorder" == e
													? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-bottom")
													: "topBottomBorder" == e
														? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-tb")
														: t.find("thead tr").removeClass();
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表头边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>    \n        <option value="border" >${i18n.__("有边框")}</option>\n        <option value="noBorder" >${i18n.__("无边框")}</option>\n        <option value="leftBorder" >${i18n.__("左边框")}</option>\n        <option value="rightBorder" >${i18n.__("右边框")}</option>\n        <option value="leftRightBorder" >${i18n.__("左右边框")}</option>\n        <option value="topBorder" >${i18n.__("上边框")}</option>\n        <option value="bottomBorder" >${i18n.__("下边框")}</option>\n        <option value="topBottomBorder" >${i18n.__("上下边框")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			c = (function () {
				function t() {
					this.name = "tableHeaderCellBorder";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("thead tr").length) {
							if ("border" == e || void 0 == e)
								return t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-td-all");
							"noBorder" == e
								? t.find("thead tr").addClass("hiprint-printElement-tableTarget-border-td-none")
								: t.find("thead tr").removeClass();
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表头单元格边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>    \n        <option value="border" >${i18n.__("有边框")}</option>\n        <option value="noBorder" >${i18n.__("无边框")}</option>\n      \n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			d2 = (function () {
				function t() {
					this.name = "tableFooterBorder";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("tfoot tr").length) {
							if ("border" == e || void 0 == e)
								return t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-all");
							"noBorder" == e
								? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-none")
								: "leftBorder" == e
									? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-left")
									: "rightBorder" == e
										? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-right")
										: "leftRightBorder" == e
											? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-lr")
											: "topBorder" == e
												? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-top")
												: "bottomBorder" == e
													? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-bottom")
													: "topBottomBorder" == e
														? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-tb")
														: t.find("tfoot tr").removeClass();
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表尾边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>    \n        <option value="border" >${i18n.__("有边框")}</option>\n        <option value="noBorder" >${i18n.__("无边框")}</option>\n        <option value="leftBorder" >${i18n.__("左边框")}</option>\n        <option value="rightBorder" >${i18n.__("右边框")}</option>\n        <option value="leftRightBorder" >${i18n.__("左右边框")}</option>\n        <option value="topBorder" >${i18n.__("上边框")}</option>\n        <option value="bottomBorder" >${i18n.__("下边框")}</option>\n        <option value="topBottomBorder" >${i18n.__("上下边框")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			c2 = (function () {
				function t() {
					this.name = "tableFooterCellBorder";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("tfoot tr").length) {
							if ("border" == e || void 0 == e)
								return t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-td-all");
							"noBorder" == e
								? t.find("tfoot tr").addClass("hiprint-printElement-tableTarget-border-td-none")
								: t.find("tfoot tr").removeClass();
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表尾单元格边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>    \n        <option value="border" >${i18n.__("有边框")}</option>\n        <option value="noBorder" >${i18n.__("无边框")}</option>\n      \n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			h = (function () {
				function t() {
					this.name = "tableHeaderRowHeight";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("thead tr td").length) {
							if (e) return t.find("thead tr td:not([rowspan])").css("height", e + "pt"), "height:" + e + "pt";
							t.find("thead tr td").map(function (t, e) {
								e.style.height = "";
							});
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表头行高")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n       \n        <option value="" >${i18n.__("默认")}</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        <option value="22.5" >22.5pt</option>\n        <option value="23.25" >23.25pt</option>\n        <option value="24" >24pt</option>\n        <option value="24.75" >24.75pt</option>\n        <option value="25.5" >25.5pt</option>\n        <option value="26.25" >26.25pt</option>\n        <option value="27" >27pt</option>\n        <option value="27.75" >27.75pt</option>\n        <option value="28.5" >28.5pt</option>\n        <option value="29.25" >29.25pt</option>\n        <option value="30" >30pt</option>\n        <option value="30.75" >30.75pt</option>\n        <option value="31.5" >31.5pt</option>\n        <option value="32.25" >32.25pt</option>\n        <option value="33" >33pt</option>\n        <option value="33.75" >33.75pt</option>\n        <option value="34.5" >34.5pt</option>\n        <option value="35.25" >35.25pt</option>\n        <option value="36" >36pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			f = (function () {
				function t() {
					this.name = "tableHeaderFontSize";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("thead").length) {
							if (e) return t.find("thead").css("font-size", e + "pt"), "font-size:" + e + "pt";
							t.find("thead").map(function (t, e) {
								e.style.fontSize = "";
							});
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表头字体大小")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			g = (function () {
				function t() {
					this.name = "tableHeaderFontWeight";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("thead").length) {
							if (e) return t.find("thead tr td").css("font-weight", e), "font-weight:" + e;
							t.find("thead tr td").map(function (t, e) {
								e.style.fontWeight = "";
							});
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表头字体粗细")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit"> \n        <option value="" >${i18n.__("默认")}</option>\n        <option value="lighter" >${i18n.__("更细")}</option>\n        <option value="bold" >${i18n.__("粗体")}</option>\n        <option value="bolder" >${i18n.__("粗体+")}</option>\n        <option value="100" >100</option>\n        <option value="200" >200</option>\n        <option value="300" >300</option>\n        <option value="400" >400</option>\n        <option value="500" >500</option>\n        <option value="600" >600</option>\n        <option value="700" >700</option>\n        <option value="800" >800</option>\n        <option value="900" >900</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			m = (function () {
				function t() {
					this.name = "tableBodyCellBorder";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("tbody tr").length) {
							if ("border" == e || void 0 == e)
								return t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-td-all");
							"noBorder" == e
								? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-td-none")
								: t.find("tbody tr").removeClass();
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n            ${i18n.__("表体单元格边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n            <select class="auto-submit">\n            <option value="" >${i18n.__("默认")}</option>\n            <option value="border" >${i18n.__("有边框")}</option>\n            <option value="noBorder" >${i18n.__("无边框")}</option>\n            </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			v = (function () {
				function t() {
					this.name = "tableBodyRowHeight";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("tbody tr td").length) {
							if (e) return t.find("tbody tr td").css("height", e + "pt"), "height:" + e + "pt";
							t.find("tbody tr td").map(function (t, e) {
								e.style.height = "";
							});
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n            ${i18n.__("表体行高")}\n        </div>\n        <div class="hiprint-option-item-field">\n            <select class="auto-submit">\n            <option value="" >${i18n.__("默认")}</option>\n            <option value="6" >6pt</option>\n            <option value="6.75" >6.75pt</option>\n            <option value="7.5" >7.5pt</option>\n            <option value="8.25" >8.25pt</option>\n            <option value="9" >9pt</option>\n            <option value="9.75" >9.75pt</option>\n            <option value="10.5" >10.5pt</option>\n            <option value="11.25" >11.25pt</option>\n            <option value="12" >12pt</option>\n            <option value="12.75" >12.75pt</option>\n            <option value="13.5" >13.5pt</option>\n            <option value="14.25" >14.25pt</option>\n            <option value="15" >15pt</option>\n            <option value="15.75" >15.75pt</option>\n            <option value="16.5" >16.5pt</option>\n            <option value="17.25" >17.25pt</option>\n            <option value="18" >18pt</option>\n            <option value="18.75" >18.75pt</option>\n            <option value="19.5" >19.5pt</option>\n            <option value="20.25" >20.25pt</option>\n            <option value="21" >21pt</option>\n            <option value="21.75" >21.75pt</option>\n            <option value="22.5" >22.5pt</option>\n            <option value="23.25" >23.25pt</option>\n            <option value="24" >24pt</option>\n            <option value="24.75" >24.75pt</option>\n            <option value="25.5" >25.5pt</option>\n            <option value="26.25" >26.25pt</option>\n            <option value="27" >27pt</option>\n            <option value="27.75" >27.75pt</option>\n            <option value="28.5" >28.5pt</option>\n            <option value="29.25" >29.25pt</option>\n            <option value="30" >30pt</option>\n            <option value="30.75" >30.75pt</option>\n            <option value="31.5" >31.5pt</option>\n            <option value="32.25" >32.25pt</option>\n            <option value="33" >33pt</option>\n            <option value="33.75" >33.75pt</option>\n            <option value="34.5" >34.5pt</option>\n            <option value="35.25" >35.25pt</option>\n            <option value="36" >36pt</option>\n            </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			y = (function () {
				function t() {
					this.name = "tableHeaderBackground";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("thead").length) {
							if (e) return t.find("thead").css("background", e), "background:" + e;
							t.find("thead").map(function (t, e) {
								e.style.background = "";
							});
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表头背景")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" class="auto-submit" />\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").minicolors({
							defaultValue: t || "",
							theme: "bootstrap",
						}),
							this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			b = (function () {
				function t() {
					this.name = "borderWidth";
				}

				return (
					(t.prototype.createTarget = function (t) {
						var name = ["hline", "vline", "rect", "oval"].includes(t.printElementType.type)
							? `${i18n.__("线宽")}`
							: `${i18n.__("边框大小")}`;
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${name}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-width", e + "pt"), "border-width:" + e + "pt";
							t[0].style.borderWidth = "";
						}

						return null;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			E = (function () {
				function t() {
					this.name = "barcodeMode";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("条形码格式")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="CODE128A" >CODE128A</option>\n        <option value="CODE128B" >CODE128B</option>\n        <option value="CODE128C" >CODE128C</option>\n        <option value="CODE39" >CODE39</option>\n        <option value="EAN13" >EAN-13</option>\n        <option value="EAN8" >EAN-8</option>\n        <option value="EAN5" >EAN-5</option>\n        <option value="EAN2" >EAN-2</option>\n        <option value="UPC" >UPC（A）</option>\n        <option value="ITF" >ITF</option>\n        <option value="ITF14" >ITF-14</option>\n        <option value="MSI" >MSI</option>\n            <option value="MSI10" >MSI10</option>\n            <option value="MSI11" >MSI11</option>\n            <option value="MSI1010" >MSI1010</option>\n            <option value="MSI1110" >MSI1110</option>\n            <option value="Pharmacode" >Pharmacode</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						return t || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			barWidth = (function () {
				function t() {
					this.name = "barWidth";
				}
				return (
					(t.prototype.createTarget = function () {
						this.target = $(
							`<div class="hiprint-option-item"><div class="hiprint-option-item-label">${i18n.__("条码宽度")}</div><div class="hiprint-option-item-field"><select class="auto-submit"><option value="">${i18n.__("默认")}</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select></div></div>`,
						);
						return this.target;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						return t || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			barAutoWidth = (function () {
				function t() {
					this.name = "barAutoWidth";
				}
				return (
					(t.prototype.createTarget = function () {
						this.target = $(
							`<div class="hiprint-option-item"><div class="hiprint-option-item-label">${i18n.__("条码自动增宽")}</div><div class="hiprint-option-item-field"><select class="auto-submit"><option value="">${i18n.__("默认")}</option><option value="true">${i18n.__("自动")}</option><option value="false">${i18n.__("不自动")}</option></select></div></div>`,
						);
						return this.target;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						return t || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			barcodeType = (function () {
				function t() {
					this.name = "barcodeType";
				}

				return (
					(t.prototype.createTarget = function () {
						var options = [
							{
								label: `${i18n.__("默认")}(Code 128)`,
								value: "",
							},
							{
								label: `${i18n.__("商品条码")}`,
								children: [
									{
										label: "EAN-13",
										value: "ean13",
									},
									{
										label: "EAN-8",
										value: "ean8",
									},
									{
										label: "UPC-A",
										value: "upca",
									},
									{
										label: "UPC-E",
										value: "upce",
									},
									{
										label: "ISBN",
										value: "isbn",
									},
									{
										label: "ISMN",
										value: "ismn",
									},
									{
										label: "ISSN",
										value: "issn",
									},
								],
							},
							{
								label: `${i18n.__("条形码")}`,
								children: [
									{
										label: "Code 39",
										value: "code39",
									},
									{
										label: "Code 39 Extended",
										value: "code39ext",
									},
									{
										label: "Code 93",
										value: "code93",
									},
									{
										label: "Code 93 Extended",
										value: "code93ext",
									},
									{
										label: "Code 128",
										value: "code128",
									},
									{
										label: "Interleaved 2 of 5 (ITF)",
										value: "interleaved2of5",
									},
								],
							},
							{
								label: `${i18n.__("物流")}`,
								children: [
									{
										label: "EAN-14",
										value: "ean14",
									},
									{
										label: "GS1-128",
										value: "gs1-128",
									},
									{
										label: "ITF-14",
										value: "itf14",
									},
									{
										label: "SSCC-18",
										value: "sscc18",
									},
								],
							},
							{
								label: "GS1 DataBar",
								children: [
									{
										label: "扩展式 GS1 DataBar",
										value: "databarexpanded",
									},
									{
										label: "层排扩展式 GS1 DataBar",
										value: "databarexpandedstacked",
									},
									{
										label: "限定式 GS1 DataBar",
										value: "databarlimited",
									},
									{
										label: "全向式 GS1 DataBar",
										value: "databaromni",
									},
									{
										label: "层排式 GS1 DataBar",
										value: "databarstacked",
									},
									{
										label: "全向层排式 GS1 DataBar",
										value: "databarstackedomni",
									},
									{
										label: "截短式 GS1 DataBar",
										value: "databartruncated",
									},
									{
										label: "GS1 北美优惠券码",
										value: "gs1northamericancoupon",
									},
								],
							},
							{
								label: `${i18n.__("邮政和快递编码")}`,
								children: [
									{
										label: "AusPost 4 State Customer Code",
										value: "auspost",
									},
									{
										label: "Deutsche Post Identcode",
										value: "identcode",
									},
									{
										label: "Deutsche Post Leitcode",
										value: "leitcode",
									},
									{
										label: "Japan Post 4 State Customer Code",
										value: "japanpost",
									},
									{
										label: "Royal TNT Post",
										value: "kix",
									},
									{
										label: "Royal Mail 4 State Customer Code",
										value: "royalmail",
									},
									{
										label: "Royal Mail Mailmark",
										value: "mailmark",
									},
									{
										label: "MaxiCode",
										value: "maxicode",
									},
									{
										label: "USPS FIM symbols",
										value: "symbol",
									},
									{
										label: "USPS Intelligent Mail",
										value: "onecode",
									},
									{
										label: "USPS PLANET",
										value: "planet",
									},
									{
										label: "USPS POSTNET",
										value: "postnet",
									},
								],
							},
							{
								label: `${i18n.__("医疗产品编码")}`,
								children: [
									{
										label: "Italian Pharmacode",
										value: "code32",
									},
									{
										label: "Pharmaceutical Binary Code",
										value: "pharmacode",
									},
									{
										label: "Pharmazentralnummer (PZN)",
										value: "pzn",
									},
									{
										label: "Two-track Pharmacode",
										value: "pharmacode2",
									},
									{
										label: "HIBC Aztec Code",
										value: "hibcazteccode",
									},
									{
										label: "HIBC Codablock F",
										value: "hibccodablockf",
									},
									{
										label: "HIBC Code 128",
										value: "hibccode128",
									},
									{
										label: "HIBC Code 39",
										value: "hibccode39",
									},
								],
							},
							{
								label: `${i18n.__("不常用编码")}`,
								children: [
									{
										label: "Code 11",
										value: "code11",
									},
									{
										label: "Code 16K",
										value: "code16k",
									},
									{
										label: "Code 2 of 5",
										value: "code2of5",
									},
									{
										label: "Code 49",
										value: "code49",
									},
									{
										label: "Code One",
										value: "codeone",
									},
									{
										label: "Codabar",
										value: "rationalizedCodabar",
									},
									{
										label: "Codablock F",
										value: "codablockf",
									},
									{
										label: "BC412",
										value: "bc412",
									},
									{
										label: "COOP 2 of 5",
										value: "coop2of5",
									},
									{
										label: "Channel Code",
										value: "channelcode",
									},
									{
										label: "Datalogic 2 of 5",
										value: "datalogic2of5",
									},
									{
										label: "DotCode",
										value: "dotcode",
									},
									{
										label: "IATA 2 of 5",
										value: "iata2of5",
									},
									{
										label: "MSI Plessey",
										value: "msi",
									},
									{
										label: "Matrix 2 of 5",
										value: "matrix2of5",
									},
									{
										label: "Plessey UK",
										value: "plessey",
									},
									{
										label: "PosiCode",
										value: "posicode",
									},
									{
										label: "Telepen",
										value: "telepen",
									},
									{
										label: "Telepen Numeric",
										value: "telepennumeric",
									},
								],
							},
							{
								label: "GS1 复合编码",
								children: [
									{
										label: "复合 EAN-13",
										value: "ean13composite",
									},
									{
										label: "复合 EAN-8",
										value: "ean8composite",
									},
									{
										label: "复合 UPC-A",
										value: "upcacomposite",
									},
									{
										label: "复合 UPC-E",
										value: "upcecomposite",
									},
									{
										label: "层排扩展式复合 GS1 DataBar",
										value: "databarexpandedstackedcomposite",
									},
									{
										label: "扩展式复合 GS1 DataBar",
										value: "databarexpandedcomposite",
									},
									{
										label: "限定式复合 GS1 DataBar",
										value: "databarlimitedcomposite",
									},
									{
										label: "全向式复合 GS1 DataBar",
										value: "databaromnicomposite",
									},
									{
										label: "层排式复合 GS1 DataBar",
										value: "databarstackedcomposite",
									},
									{
										label: "全向层排式复合 GS1 DataBar",
										value: "databarstackedomnicomposite",
									},
									{
										label: "截短式复合 GS1 DataBar",
										value: "databartruncatedcomposite",
									},
									{
										label: "复合 GS1-128",
										value: "gs1-128composite",
									},
								],
							},
							{
								label: `${i18n.__("附加组件")}`,
								children: [
									{
										label: "EAN-2 (2 位附加码)",
										value: "ean2",
									},
									{
										label: "EAN-5 (5 位附加码)",
										value: "ean5",
									},
									{
										label: "GS1 复合 2D 组件",
										value: "gs1-cc",
									},
								],
							},
							{
								label: `${i18n.__("实验编码")}`,
								children: [
									{
										label: "Raw",
										value: "raw",
									},
									{
										label: "Custom 4 state symbology",
										value: "daft",
									},
									{
										label: "Flattermarken",
										value: "flattermarken",
									},
								],
							},
						];
						this.target = $(
							`<div class="hiprint-option-item hiprint-option-item-row"><div class="hiprint-option-item-label">${i18n.__("条码类型")}</div><div class="hiprint-option-item-field"><select class="auto-submit"></select></div></div>`,
						);
						var select = this.target.find("select.auto-submit");
						options.forEach((item) => {
							if (item.children) {
								var optgroup = $(`<optgroup label="${item.label}"></optgroup`);
								item.children.forEach((chil) => {
									optgroup.append($(`<option value="${chil.value}">${chil.label}</option>`));
								});
								select.append(optgroup);
							} else {
								select.append(`<option value="${item.value}">${item.label}</option>`);
							}
						});
						return this.target;
					}),
					(t.prototype.getValue = function () {
						return this.target.find("select").val() || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			qrcodeType = (function () {
				function t() {
					this.name = "qrcodeType";
				}

				return (
					(t.prototype.createTarget = function () {
						var options = [
							{
								label: `${i18n.__("默认")}(qrcode)`,
								value: "",
							},
							{
								label: "QR Code",
								value: "qrcode",
							},
							{
								label: "Micro QR Code",
								value: "microqrcode",
							},
							{
								label: "Swiss QR Code",
								value: "swissqrcode",
							},
							{
								label: "Rectangular Micro QR Code",
								value: "rectangularmicroqrcode",
							},
							{
								label: "Aztec Code",
								value: "azteccode",
							},
							{
								label: "Aztec Runes",
								value: "aztecrune",
							},
							{
								label: "Compact Aztec Code",
								value: "azteccodecompact",
							},
							{
								label: "Data Matrix",
								value: "datamatrix",
							},
							{
								label: "Data Matrix Rectangular",
								value: "datamatrixrectangular",
							},
							{
								label: "汉信码",
								value: "hanxin",
							},
							{
								label: "GS1 Data Matrix",
								value: "gs1datamatrix",
							},
							{
								label: "GS1 Data Matrix Rectangular",
								value: "gs1datamatrixrectangular",
							},
							{
								label: "GS1 QR Code",
								value: "gs1qrcode",
							},
							{
								label: "HIBC Data Matrix",
								value: "hibcdatamatrix",
							},
							{
								label: "HIBC Data Matrix Rectangular",
								value: "hibcdatamatrixrectangular",
							},
							{
								label: "HIBC MicroPDF417",
								value: "hibcmicropdf417",
							},
							{
								label: "HIBC PDF417",
								value: "hibcpdf417",
							},
							{
								label: "HIBC QR Code",
								value: "hibcqrcode",
							},
						];
						this.target = $(
							`<div class="hiprint-option-item hiprint-option-item-row"><div class="hiprint-option-item-label">${i18n.__("二维码类型")}</div><div class="hiprint-option-item-field"><select class="auto-submit"></select></div></div>`,
						);
						var select = this.target.find("select.auto-submit");
						options.forEach((item) => {
							select.append(`<option value="${item.value}">${item.label}</option>`);
						});
						return this.target;
					}),
					(t.prototype.getValue = function () {
						return this.target.find("select").val() || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			qrCodeLevel = (function () {
				function t() {
					this.name = "qrCodeLevel";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("二维码容错率")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="1" >7% L</option>\n        <option value="0" >15% M</option>\n        <option value="3" >25% Q</option>\n        <option value="2" >30% H</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						return parseInt(t || 0);
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			T = (function () {
				function t() {
					this.name = "color";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("color", e), "color:" + e;
							t[0].style.color = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字体颜色")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" class="auto-submit"/>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").minicolors({
							defaultValue: t || "",
							theme: "bootstrap",
						}),
							this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			P = (function () {
				function t() {
					this.name = "textDecoration";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("文本修饰")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="underline" >${i18n.__("下划线")}</option>\n            <option value="overline" >${i18n.__("上划线")}</option>\n            <option value="line-through" >${i18n.__("穿梭线")}</option>\n           \n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("text-decoration", e), "text-decoration:" + e;
							t[0].style.textDecoration = "";
						}

						return null;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			_ = (function () {
				function t() {
					this.name = "field";
				}

				return (
					(t.prototype.createTarget = function (t) {
						var e = void 0;

						if ((t && (e = t.getFields()), e)) {
							this.isSelect = !0;
							var n = `<div class="hiprint-option-item hiprint-option-item-row">\n            <div class="hiprint-option-item-label">\n            ${i18n.__("字段名")}\n            </div>\n            <div class="hiprint-option-item-field">\n            <select class="auto-submit">\n                <option value="" >${i18n.__("请选择字段")}</option>`;
							e.forEach(function (t, e) {
								n += ' <option value="' + (t.field || "") + '" >' + (t.text || "") + "</option>";
							}),
								(n += " </select>\n            </div>\n        </div>"),
								(this.target = $(n));
						} else {
							this.isSelect = !1;
							this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n            <div class="hiprint-option-item-label">\n            ${i18n.__("字段名")}\n            </div>\n            <div class="hiprint-option-item-field">\n            <input type="text" placeholder="${i18n.__("请输入字段名")}" class="auto-submit">\n            </div>\n        </div>`,
							);
						}

						return this.target;
					}),
					(t.prototype.getValue = function () {
						return (this.isSelect ? this.target.find("select").val() : this.target.find("input").val()) || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.isSelect
							? t &&
								(this.target.find('option[value="' + t + '"]').length ||
									this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"),
								this.target.find("select").val(t))
							: this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			w = (function () {
				function t() {
					this.name = "title";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("标题")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:50px;" placeholder="${i18n.__("请输入标题")}" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			x = (function () {
				function t() {
					this.name = "testData";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("测试数据")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("仅字段名称存在时有效")}" class="auto-submit" >\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			coordinate = (function () {
				function t() {
					this.name = "coordinate";
				}

				return (
					(t.prototype.createTarget = function (t, o) {
						var n = this;
						n.target = $(`<div class="hiprint-option-item hiprint-option-item-row">
          <div class="hiprint-option-item-label">\n        ${i18n.__("位置坐标")}\n        </div>
          <div class="hiprint-option-item-field" style="display: flex;align-items: baseline;">\n
          <input type="number" style="width:48%" placeholder="${i18n.__("X位置(左)")}" class="auto-submit" />\n
          <input type="number" style="width:48%" placeholder="${i18n.__("Y位置(上)")}" class="auto-submit" />\n
          </div>\n
          </div>`);
						n.syncLock = o.coordinateSync || false;
						n.createSyncLock(n.syncLock);
						return n.target;
					}),
					(t.prototype.createSyncLock = function (t) {
						var n = this;
						n.lockTarget = n.syncLock
							? $(`<label style="margin: 0 4px;text-align:center;width: 8%" title="${i18n.__("同步")}">🔗</label>`)
							: $(`<label style="margin: 0 4px;text-align:center;width: 8%" title="${i18n.__("不同步")}">🔓</label>`);
						n.lockTarget.click(function () {
							if (n.syncLock) {
								n.lockTarget.text("🔓").attr("title", `${i18n.__("不同步")}`);
							} else {
								n.lockTarget.text("🔗").attr("title", `${i18n.__("同步")}`);
							}
							n.syncLock = !n.syncLock;
						});
						n.target.find("input:first").after(n.lockTarget);
						// 同步编辑...
						n.target.find("input:first").change(function () {
							if (n.syncLock) {
								n.target.find("input:last").val($(this).val());
							}
						});
						n.target.find("input:last").change(function () {
							if (n.syncLock) {
								n.target.find("input:first").val($(this).val());
							}
						});
						return n.lockTarget;
					}),
					(t.prototype.css = function (t) {
						if (t && t.length && this.target) {
							// 仅当前元素被选中才更新坐标位置, 以避免冲突
							if (
								("block" == t.find(".resize-panel").css("display") || t[0].className.includes("table")) &&
								this.el == t
							) {
								var v = this.getValue();
								return t.css("left", v.left + "pt").css("top", v.top + "pt");
							}
						}
						return null;
					}),
					(t.prototype.getValue = function () {
						var v = {
							coordinateSync: this.syncLock,
							left: 0,
							top: 0,
						};
						v.left = parseFloat(this.target.find("input:first").val() || 0);
						v.top = parseFloat(this.target.find("input:last").val() || 0);
						return v;
					}),
					(t.prototype.setValue = function (t, el) {
						this.el = el.designTarget || el;
						this.target.find("input:first").val(t.left);
						this.target.find("input:last").val(t.top);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			widthHeight = (function () {
				function t() {
					this.name = "widthHeight";
				}

				return (
					(t.prototype.createTarget = function (t, o) {
						var n = this;
						n.target = $(`<div class="hiprint-option-item hiprint-option-item-row">
          <div class="hiprint-option-item-label">\n        ${i18n.__("宽高大小")}\n        </div>
          <div class="hiprint-option-item-field" style="display: flex;align-items: baseline;">\n
          <input type="number" style="width:48%" placeholder="${i18n.__("宽")}" class="auto-submit" />\n
          <input type="number" style="width:48%" placeholder="${i18n.__("高")}" class="auto-submit" />\n
          </div>\n
          </div>`);
						n.syncLock = o.widthHeightSync || false;
						n.createSyncLock(n.syncLock);
						return n.target;
					}),
					(t.prototype.createSyncLock = function (t) {
						var n = this;
						n.lockTarget = n.syncLock
							? $(`<label style="margin: 0 4px;text-align:center;width: 8%" title="${i18n.__("同步")}">🔗</label>`)
							: $(`<label style="margin: 0 4px;text-align:center;width: 8%" title="${i18n.__("不同步")}">🔓</label>`);
						n.lockTarget.click(function () {
							if (n.syncLock) {
								n.lockTarget.text("🔓").attr("title", `${i18n.__("不同步")}`);
							} else {
								n.lockTarget.text("🔗").attr("title", `${i18n.__("同步")}`);
							}
							n.syncLock = !n.syncLock;
						});
						n.target.find("input:first").after(n.lockTarget);
						// 同步编辑...
						n.target.find("input:first").change(function () {
							if (n.syncLock) {
								n.target.find("input:last").val($(this).val());
							}
						});
						n.target.find("input:last").change(function () {
							if (n.syncLock) {
								n.target.find("input:first").val($(this).val());
							}
						});
						return n.lockTarget;
					}),
					(t.prototype.css = function (t) {
						if (t && t.length && this.target) {
							// 仅当前元素被选中才更新宽高大小, 以避免冲突
							if (
								("block" == t.find(".resize-panel").css("display") || t[0].className.includes("table")) &&
								this.el == t
							) {
								var v = this.getValue();
								return t.css("width", v.width + "pt").css("height", v.height + "pt");
							}
						}
						return null;
					}),
					(t.prototype.getValue = function () {
						var v = {
							widthHeightSync: this.syncLock,
							width: 0,
							height: 0,
						};
						v.width = parseFloat(this.target.find("input:first").val() || 0);
						v.height = parseFloat(this.target.find("input:last").val() || 0);
						return v;
					}),
					(t.prototype.setValue = function (t, el) {
						this.el = el.designTarget || el;
						this.target.find("input:first").val(t.width);
						this.target.find("input:last").val(t.height);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			C = (function () {
				function t() {
					this.name = "src";
				}

				return (
					(t.prototype.createTarget = function (t) {
						this.el = t;
						var e = void 0,
							i = this;
						this.target = $(
							`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("图片地址")}\n        </div>\n        <div class="hiprint-option-item-field" style="display: flex;align-items: baseline;">\n        <input type="text" placeholder="${i18n.__("请输入图片地址")}" class="auto-submit" style="width:70%">\n    <button class="hiprint-option-item-settingBtn" style="padding:0 10px;margin:0 0 0 5px" type="button">${i18n.__("选择")}</button>        </div>\n    </div>`,
						);
						if ((t && (e = t.getOnImageChooseClick()), e)) {
							this.target.find("button").click(function () {
								e && e(i);
							});
						}
						return this.target;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.refresh = function (t, opt, cb) {
						var that = this;
						this.setValue(t), this.target.find("input").change();
						if (this.el && opt) {
							var img = new Image();
							img.src = t;
							if (img.complete) {
								that.updateEl(img.width, img.height, opt, cb);
							} else {
								img.onload = function () {
									that.updateEl(img.width, img.height, opt, cb);
								};
							}
						}
					}),
					(t.prototype.updateEl = function (width, height, opt, cb) {
						if (opt) {
							var ratio, w, h;
							if (opt && opt.auto) {
								if (width >= height) {
									opt.width = true;
								} else {
									opt.height = true;
								}
							}
							if (opt.width) {
								ratio = height / width;
								w = this.el.options.width;
								h = Math.floor(w * ratio * 10) / 10;
								this.el.options.height = h;
								this.el.designTarget.css("height", h + "pt");
							} else if (opt.height) {
								ratio = width / height;
								h = this.el.options.height;
								w = Math.floor(h * ratio * 10) / 10;
								this.el.options.width = w;
								this.el.designTarget.css("width", w + "pt");
							} else if (opt.real) {
								w = hinnn.px.toPt(width);
								h = hinnn.px.toPt(height);
								this.el.options.width = w;
								this.el.options.height = h;
								this.el.designTarget.css("width", w + "pt");
								this.el.designTarget.css("height", h + "pt");
							}
							this.el.designTarget.children(".resize-panel").trigger($.Event("click"));
						}
						cb && cb(this.el, width, height);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			imageFit = (function () {
				function t() {
					this.name = "fit";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.find("img").css("object-fit", e), "object-fit:" + e;
							t.find("img")[0].style["object-fit"] = "";
						}
						return null;
					}),
					(t.prototype.createTarget = function () {
						(this.target = $(
							`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("图片缩放")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="contain" >${i18n.__("等比")}</option>\n        <option value="cover" >${i18n.__("剪裁")}</option>\n        <option value="fill" >${i18n.__("填充")}</option>\n        <option value="none" >${i18n.__("原始尺寸")}</option>\n                </select>\n        </div>\n    </div>`,
						)),
							this.target;
						return this.target;
					}),
					(t.prototype.getValue = function () {
						return this.target.find("select").val();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			O = (function () {
				function t() {
					this.name = "borderColor";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-color", e), "border-color:" + e;
							t[0].style.borderColor = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function (t) {
						var name = ["hline", "vline", "rect", "oval"].includes(t.printElementType.type)
							? `${i18n.__("颜色")}`
							: `${i18n.__("边框颜色")}`;
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${name}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" class="auto-submit" />\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").minicolors({
							defaultValue: t || "",
							theme: "bootstrap",
						}),
							this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			watermarkOptions = (function () {
				function t() {
					this.name = "watermarkOptions";
				}
				return (
					(t.prototype.createTarget = function () {
						this.target = $(
							`<div class="hiprint-option-item hiprint-option-item-row"><div class="hiprint-option-item-label">${i18n.__("水印功能")}</div></div>`,
						);
						this.content = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: baseline;"><div style="width:25%">${i18n.__("水印内容")}:</div><input style="width:75%" type="text" placeholder="${i18n.__("水印内容")}" class="auto-submit"></div>`,
						);
						this.fillStyle = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: center;margin-top: 4px"><div style="width:25%">${i18n.__("字体颜色")}:</div><input style="width:110%" data-format="rgb" data-opacity="0.3" type="text" placeholder="${i18n.__("字体颜色")}" class="auto-submit"></div>`,
						);
						this.fontSize = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: center;"><div style="width:25%">${i18n.__("字体大小")}:</div><input style="width:75%" type="range" min="10" max="80" placeholder="${i18n.__("字体大小")}" class="auto-submit"></div>`,
						);
						this.rotate = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: center;"><div style="width:25%">${i18n.__("旋转角度")}:</div><input style="width:75%" type="range" min="0" max="180" placeholder="${i18n.__("旋转角度")}" class="auto-submit"></div>`,
						);
						this.width = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: center;"><div style="width:25%">${i18n.__("水平密度")}:</div><input style="width:75%" type="range" min="100" max="800" placeholder="${i18n.__("水平密度")}" class="auto-submit"></div>`,
						);
						this.height = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: center;"><div style="width:25%">${i18n.__("垂直密度")}:</div><input style="width:75%" type="range" min="100" max="800" placeholder="${i18n.__("垂直密度")}" class="auto-submit"></div>`,
						);
						this.timestamp = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: center;"><div style="width:25%">${i18n.__("水印时间")}:</div><input style="width:18px;height:18px;margin:0 0 4px 0;" type="checkbox" placeholder="${i18n.__("水印时间")}" class="auto-submit"></div>`,
						);
						let formatlist = [
							"YYYY-MM-DD HH:mm:ss",
							"YYYY-MM-DD HH:mm",
							"YYYY-MM-DD HH",
							"YYYY-MM-DD",
							"YYYY-MMMM",
							"YYYY-MM",
							"YYYY",
						];
						let timeFormatList = `\n            <option value="" >${i18n.__("默认")}(YYYY-MM-DD HH:mm)</option>`;
						formatlist.forEach(function (e) {
							timeFormatList += '\n            <option value="' + e + '">' + e + "</option>";
						});
						this.format = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: baseline;"><div style="width:25%">${i18n.__("时间格式")}:</div><select style="width:75%" class="auto-submit"></select></div>`,
						);
						this.format.find(".auto-submit").append($(timeFormatList));
						this.target.append(this.content);
						this.target.append(this.fillStyle);
						this.target.append(this.fontSize);
						this.target.append(this.rotate);
						this.target.append(this.width);
						this.target.append(this.height);
						this.target.append(this.timestamp);
						this.target.append(this.format);
						return this.target;
					}),
					(t.prototype.getValue = function () {
						let opt = {
							content: this.content.find("input").val(),
							fillStyle: this.fillStyle.find("input").val() || "rgba(184, 184, 184, 0.3)",
							fontSize: parseInt(this.fontSize.find("input").val() || "14") + "px",
							rotate: parseInt(this.rotate.find("input").val() || "25"),
							width: parseInt(this.width.find("input").val() || "200"),
							height: parseInt(this.height.find("input").val() || "200"),
							timestamp: this.timestamp.find("input").is(":checked"),
							format: this.format.find("select").val() == "" ? "YYYY-MM-DD HH:mm" : this.format.find("select").val(),
						};
						let options = Object.assign({}, this.options, opt);
						return options;
					}),
					(t.prototype.setValue = function (t) {
						this.options = t;
						this.content.find("input").val(t.content || "");
						this.fillStyle.find("input").val(t.fillStyle || "rgba(184, 184, 184, 0.3)");
						this.fillStyle.find("input").minicolors({
							format: "rgb",
							opacity: true,
							theme: "bootstrap",
						});
						const fontSize = parseInt(t.fontSize || "14");
						this.fontSize.find("input").val(fontSize);
						this.rotate.find("input").val(t.rotate || 25);
						this.width.find("input").val(t.width || 200);
						this.height.find("input").val(t.height || 200);
						this.timestamp.find("input").attr("checked", t.timestamp == void 0 ? false : t.timestamp);
						this.format.find("select").val(t.format || "YYYY-MM-DD HH:mm");
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			H = (function () {
				function t() {
					this.name = "paperNumberFormat";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("页码格式")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="\${paperNo}-\${paperCount}" class="auto-submit">\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			D = (function () {
				function t() {
					this.name = "paperNumberDisabled";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("显示页码")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("显示")}</option>\n        <option value="true" >${i18n.__("隐藏")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("true" == this.target.find("select").val()) return !0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			paperNumberContinue = (function () {
				function t() {
					this.name = "paperNumberContinue";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("页码续排")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="true" >${i18n.__("续排")}</option>\n        <option value="reset" >${i18n.__("重排")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						return "true" == this.target.find("select").val();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((t == void 0 || t ? "true" : "reset").toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			I = (function () {
				function t() {
					this.name = "longTextIndent";
				}

				return (
					(t.prototype.css = function (t, e) {
						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("每行缩进")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        <option value="22.5" >22.5pt</option>\n        <option value="23.25" >23.25pt</option>\n        <option value="24" >24pt</option>\n        <option value="24.75" >24.75pt</option>\n        <option value="25.5" >25.5pt</option>\n        <option value="26.25" >26.25pt</option>\n        <option value="27" >27pt</option>\n        <option value="27.75" >27.75pt</option>\n        <option value="28.5" >28.5pt</option>\n        <option value="29.25" >29.25pt</option>\n        <option value="30" >30pt</option>\n        <option value="30.75" >30.75pt</option>\n        <option value="31.5" >31.5pt</option>\n        <option value="32.25" >32.25pt</option>\n        <option value="33" >33pt</option>\n        <option value="33.75" >33.75pt</option>\n        <option value="34.5" >34.5pt</option>\n        <option value="35.25" >35.25pt</option>\n        <option value="36" >36pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			R = (function () {
				function t() {
					this.name = "showInPage";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e && "none" == e) return t.addClass("alwaysHide");
							t.removeClass("alwaysHide");
						}
						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("显示规则")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="none" >${i18n.__("始终隐藏")}</option>\n            <option value="first" >${i18n.__("首页")}</option>\n            <option value="odd" >${i18n.__("奇数页")}</option>\n            <option value="even" >${i18n.__("偶数页")}</option>\n            <option value="last" >${i18n.__("尾页")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			pageBreak = (function () {
				function t() {
					this.name = "pageBreak";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e && "none" == e) return t.addClass("alwaysHide");
							t.removeClass("alwaysHide");
						}
						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("强制分页")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="true" >${i18n.__("是")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("true" == this.target.find("select").val()) return !0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			M = (function () {
				function t() {
					this.name = "panelPaperRule";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("打印规则")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="odd" >${i18n.__("保持奇数")}</option>\n            <option value="even" >${i18n.__("保持偶数")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			M2 = (function () {
				function t() {
					this.name = "panelPageRule";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("分页规则")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="none" >${i18n.__("不分页")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			S = (function () {
				function t() {
					this.name = "leftSpaceRemoved";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("移除段落左侧空白")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="true" >${i18n.__("移除")}</option>\n            <option value="false" >${i18n.__("不移除")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("false" == this.target.find("select").val()) return !1;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			B = (function () {
				function t() {
					this.name = "firstPaperFooter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("首页页尾")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("首页页尾")}" class="auto-submit">\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			F = (function () {
				function t() {
					this.name = "lastPaperFooter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("尾页页尾")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("尾页页尾")}" class="auto-submit">\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			L = (function () {
				function t() {
					this.name = "evenPaperFooter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("偶数页页尾")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("偶数页页尾")}" class="auto-submit">\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			A = (function () {
				function t() {
					this.name = "oddPaperFooter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("奇数页页尾")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("奇数页页尾")}" class="auto-submit" >\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			z = (function () {
				function t() {
					this.name = "fixed";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("位置固定")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="false" >${i18n.__("否")}</option>\n            <option value="true" >${i18n.__("是")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("true" == this.target.find("select").val()) return !0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			k = (function () {
				function t() {
					this.name = "axis";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("拖动方向")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="h" >${i18n.__("横向")}</option>\n        <option value="v" >${i18n.__("竖向")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						return t || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			N = (function () {
				function t() {
					this.name = "leftOffset";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("左偏移")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("偏移量")}pt" class="auto-submit" >\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			V = (function () {
				function t() {
					this.name = "lHeight";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("最低高度")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("文本过短或为空时的高度")}" class="auto-submit">\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			W = (function () {
				function t() {
					this.name = "unShowInPage";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("隐藏规则")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="first" >${i18n.__("首页")}</option>\n            <option value="last" >${i18n.__("尾页")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			j = (function () {
				function t() {
					this.name = "tableBodyRowBorder";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t.find("tbody tr").length) {
							if ("border" == e || void 0 == e)
								return t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-all");
							"noBorder" == e
								? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-none")
								: "leftBorder" == e
									? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-left")
									: "rightBorder" == e
										? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-right")
										: "leftRightBorder" == e
											? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-lr")
											: "topBorder" == e
												? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-top")
												: "bottomBorder" == e
													? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-bottom")
													: "topBottomBorder" == e
														? t.find("tbody tr").addClass("hiprint-printElement-tableTarget-border-tb")
														: t.find("tbody tr").removeClass();
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表体行边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>    \n        <option value="border" >${i18n.__("有边框")}</option>\n        <option value="noBorder" >${i18n.__("无边框")}</option>\n        <option value="leftBorder" >${i18n.__("左边框")}</option>\n        <option value="rightBorder" >${i18n.__("右边框")}</option>\n        <option value="leftRightBorder" >${i18n.__("左右边框")}</option>\n        <option value="topBorder" >${i18n.__("上边框")}</option>\n        <option value="bottomBorder" >${i18n.__("下边框")}</option>\n        <option value="topBottomBorder" >${i18n.__("上下边框")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			U = (function () {
				function t() {
					this.name = "transform";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							var n = t.find(".hiprint-printElement-content").parent(".hiprint-printElement");
							if (!n.length) {
								n = t;
							}
							if (e)
								return (
									n.css("transform", "rotate(" + e + "deg)"),
									n.css("-ms-transform", "rotate(" + e + "deg)"),
									n.css("-moz-transform", "rotate(" + e + "deg)"),
									n.css("-webkit-transform", "rotate(" + e + "deg)"),
									n.css("-o-transform", "rotate(" + e + "deg)"),
									"transform:rotate(" + e + "deg)"
								);
							n.length && (n[0].style.transform = "");
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("旋转角度")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="number" class="auto-submit"/>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			zIndex = (function () {
				function t() {
					this.name = "zIndex";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("z-index", e);
						}
						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("元素层级")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="number" class="auto-submit"/>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseInt(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			borderRadius = (function () {
				function t() {
					this.name = "borderRadius";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-raduis", e);
						}
						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("边框圆角")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" class="auto-submit"/>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			K = (function () {
				function t() {
					this.name = "optionsGroup";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("边框设置")}\n        </div>\n       \n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {}),
					(t.prototype.setValue = function (t) {}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			G = (function () {
				function t() {
					this.name = "borderTop";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-top-style", e), "border-top:1px";
							(t[0].style.borderTopStyle = ""), (t[0].style.borderTopWidth = "");
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("上边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n            <option value="" >${i18n.__("否")}</option>\n            <option value="solid" >${i18n.__("实线")}</option>\n            <option value="dotted" >${i18n.__("虚线")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			q = (function () {
				function t() {
					this.name = "borderLeft";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-left-style", e), "border-left:1px";
							(t[0].style.borderLeftStyle = ""), (t[0].style.borderLeftWidth = "");
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("左边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("否")}</option>\n        <option value="solid" >${i18n.__("实线")}</option>\n        <option value="dotted" >${i18n.__("虚线")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			X = (function () {
				function t() {
					this.name = "borderRight";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-right-style", e), "border-right:1px";
							(t[0].style.borderRightStyle = ""), (t[0].style.borderRightWidth = "");
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("右边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("否")}</option>\n        <option value="solid" >${i18n.__("实线")}</option>\n        <option value="dotted" >${i18n.__("虚线")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			Y = (function () {
				function t() {
					this.name = "borderBottom";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-bottom-style", e), "border-bottom-style:1px solid";
							(t[0].style.borderBottomStyle = ""), (t[0].style.borderBottomWidth = "");
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("下边框")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("否")}</option>\n        <option value="solid" >${i18n.__("实线")}</option>\n        <option value="dotted" >${i18n.__("虚线")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			J = (function () {
				function t() {
					this.name = "contentPaddingLeft";
				}

				return (
					(t.prototype.css = function (t, e) {
						var n = t.find(".hiprint-printElement-content");

						if (n && n.length) {
							if (e) return n.css("padding-left", e + "pt"), "padding-left";
							n[0].style.paddingLeft = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("左内边距")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			Q = (function () {
				function t() {
					this.name = "contentPaddingTop";
				}

				return (
					(t.prototype.css = function (t, e) {
						var n = t.find(".hiprint-printElement-content");

						if (n && n.length) {
							if (e) return n.css("padding-top", e + "pt"), "padding-top";
							n[0].style.paddingTop = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("上内边距")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			Z = (function () {
				function t() {
					this.name = "contentPaddingRight";
				}

				return (
					(t.prototype.css = function (t, e) {
						var n = t.find(".hiprint-printElement-content");

						if (n && n.length) {
							if (e) return n.css("padding-right", e + "pt"), "padding-right";
							n[0].style.paddingRight = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("右内边距")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tt = (function () {
				function t() {
					this.name = "contentPaddingBottom";
				}

				return (
					(t.prototype.css = function (t, e) {
						var n = t.find(".hiprint-printElement-content");

						if (n && n.length) {
							if (e) return n.css("padding-bottom", e + "pt"), "padding-bottom";
							n[0].style.paddingBottom = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("下内边距")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			et = (function () {
				function t() {
					this.name = "borderStyle";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("border-style", e), "border-style:1px";
							t[0].style.borderStyle = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function (t) {
						var name = ["hline", "vline", "rect", "oval"].includes(t.printElementType.type)
							? `${i18n.__("样式")}`
							: `${i18n.__("边框样式")}`;
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n       ${name}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n            <option value="" >${i18n.__("默认")}</option>\n            <option value="solid" >${i18n.__("实线")}</option>\n            <option value="dashed" >${i18n.__("长虚线")}</option>\n            <option value="dotted" >${i18n.__("短虚线")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			nt = (function () {
				function t() {
					this.name = "backgroundColor";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e) return t.css("background-color", e), "background-color:" + e;
							t[0].style.backgroundColor = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("背景颜色")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" class="auto-submit"/>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").minicolors({
							defaultValue: t || "",
							theme: "bootstrap",
						}),
							this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			barColor = (function () {
				function t() {
					this.name = "barColor";
				}

				return (
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							// if (e) return t.css("background-color", e), "background-color:" + e;
							// t[0].style.backgroundColor = "";
						}
						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("条码颜色")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" class="auto-submit"/>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").minicolors({
							defaultValue: t || "",
							theme: "bootstrap",
						}),
							this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			it = (function () {
				function t() {
					this.name = "orient";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("纸张方向(仅自定义纸质有效)")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="1" >${i18n.__("纵向")}</option>\n        <option value="2" >${i18n.__("横向")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			ot = (function () {
				function t() {
					this.name = "textContentVerticalAlign";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("上下对齐")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="middle" >${i18n.__("垂直居中")}</option>\n        <option value="bottom" >${i18n.__("底部")}</option>\n       \n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							t.removeClass("hiprint-text-content-middle"), t.removeClass("hiprint-text-content-bottom");
							if (e)
								return (
									"middle" === e && t.addClass("hiprint-text-content-middle"),
									"bottom" === e && t.addClass("hiprint-text-content-bottom"),
									""
								);
						}

						return null;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			textWrap = (function () {
				function t() {
					this.name = "textContentWrap";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("文本换行")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="nowrap" >${i18n.__("不换行")}</option>\n        <option value="clip" >${i18n.__("不换行&隐藏")}</option>\n        <option value="ellipsis" >${i18n.__("不换行&省略")}</option>\n       </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							t.removeClass("hiprint-text-content-wrap");
							t.find(".hiprint-printElement-text-content").removeClass("hiprint-text-content-wrap-nowrap");
							t.find(".hiprint-printElement-text-content").removeClass("hiprint-text-content-wrap-clip");
							t.find(".hiprint-printElement-text-content").removeClass("hiprint-text-content-wrap-ellipsis");
							if (e)
								return (
									t.addClass("hiprint-text-content-wrap"),
									t.find(".hiprint-printElement-text-content").addClass("hiprint-text-content-wrap-" + e),
									""
								);
						}

						return null;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			rt = n(5),
			at = (function () {
				function t() {
					this.name = "columns";
				}

				return (
					(t.prototype.createTarget = function () {
						$('<div class="indicator"></div>').appendTo("body");
						return (
							" </ul>\n       </div>\n    </div>",
							(this.target = $(
								' <div class="hiprint-option-item hiprint-option-item-row">\n       <div>\n            <ul class="hiprint-option-table-selected-columns"> </ul>\n       </div>\n    </div>',
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						return this.buildData();
					}),
					(t.prototype.setValue = function (t, e, n) {
						var i = this,
							o = this;
						(this.value = t), (this.options = e), (this.printElementType = n);
						var r = n.columns[0]
							.filter(function (e) {
								return (
									0 ==
									t[0].columns.filter(function (t) {
										return e.columnId == t.columnId;
									}).length
								);
							})
							.map(function (t) {
								var e = new rt.a(t);
								return (e.checked = !1), e;
							});
						(this.allColumns = t[0].columns.concat(r)),
							t &&
								1 == t.length &&
								(this.target.find("ul").html(
									this.allColumns
										.map(function (t, e) {
											return (
												'<li  class="hiprint-option-table-selected-item"> <div class="hi-pretty p-default">\n                ' +
												(t.checked
													? '<input type="checkbox"   checked column-id="' + (t.id || t.columnId) + '" />'
													: '<input type="checkbox"  column-id="' + (t.id || t.columnId) + '" />') +
												'\n                <div class="state">\n                    <label></label>\n                </div>\n            </div><span class="column-title">' +
												(t.title || t.descTitle || "") +
												"</span></li>"
											);
										})
										.join(""),
								),
								this.target.find("input").change(function (e) {
									var checked = e.target.checked,
										id = e.target.attributes["column-id"].nodeValue || "";
									var idx = i.allColumns.findIndex(function (e) {
										return e.field == id || e.id == id;
									});
									if (idx >= 0) {
										i.allColumns[idx]["checked"] = checked;
									}
									i.submit();
								}),
								this.printElementType.columnDisplayIndexEditable &&
									this.target
										.find("li")
										.hidraggable({
											revert: !0,
											handle: ".column-title",
											moveUnit: "pt",
											deltaX: 0,
											deltaY: 0,
										})
										.hidroppable({
											onDragOver: function onDragOver(t, e) {
												$(this).css("border-top-color", "red");
											},
											onDragLeave: function onDragLeave(t, e) {
												$(this).css("border-top-color", "");
											},
											onDrop: function onDrop(t, e) {
												$(e).insertBefore(this), $(this).css("border-top-color", ""), o.submit();
											},
										}));
					}),
					(t.prototype.buildData = function () {
						var t = this,
							e = [];
						if (t.options.columns.length > 1) {
							return this.value;
						}
						t.printElementType.makeColumnObj(t.allColumns);
						this.target.find("input").map(function (n, i) {
							var o = $(i).attr("column-id");
							var a = t.printElementType.getColumnByColumnId(o);
							if (a) {
								var p = new rt.a(a);
								(p.checked = a.checked), e.push(p);
							}
						});
						return (this.value[0].columns = e), this.value;
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			pt = (function () {
				function t() {
					this.name = "textType";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("打印类型")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="" >${i18n.__("文本")}</option>\n        <option value="barcode" >${i18n.__("条形码")}</option>\n        <option value="qrcode" >${i18n.__("二维码")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tablept = (function () {
				function t() {
					this.name = "tableTextType";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("字段类型")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认(文本)")}</option>\n        <option value="text" >${i18n.__("文本")}</option>\n <option value="sequence" >${i18n.__("序号")}</option>\n       <option value="barcode" >${i18n.__("条形码")}</option>\n        <option value="qrcode" >${i18n.__("二维码")}</option>\n    <option value="image" >${i18n.__("图片")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableE = (function () {
				function t() {
					this.name = "tableBarcodeMode";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("条形码格式")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n         <option value="" >${i18n.__("默认")}(CODE128A)</option>\n         <option value="CODE128A" >CODE128A</option>\n        <option value="CODE128B" >CODE128B</option>\n        <option value="CODE128C" >CODE128C</option>\n        <option value="CODE39" >CODE39</option>\n        <option value="EAN-13" >EAN-13</option>\n        <option value="EAN-8" >EAN-8</option>\n        <option value="EAN-5" >EAN-5</option>\n        <option value="EAN-2" >EAN-2</option>\n        <option value="UPC（A）" >UPC（A）</option>\n        <option value="ITF" >ITF</option>\n        <option value="ITF-14" >ITF-14</option>\n        <option value="MSI" >MSI</option>\n            <option value="MSI10" >MSI10</option>\n            <option value="MSI11" >MSI11</option>\n            <option value="MSI1010" >MSI1010</option>\n            <option value="MSI1110" >MSI1110</option>\n            <option value="Pharmacode" >Pharmacode</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						return t || void 0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableQRCodeLevel = (function () {
				function t() {
					this.name = "tableQRCodeLevel";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("二维码容错率")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="1" >7% L</option>\n        <option value="0" >15% M</option>\n        <option value="3" >25% Q</option>\n        <option value="2" >30% H</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						return parseInt(t || 0);
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableColumnH = (function () {
				function t() {
					this.name = "tableColumnHeight";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item ">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("单元格高度")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("条形码、二维码以及图片有效")}" class="auto-submit" >\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableSummaryTitle = (function () {
				function t() {
					this.name = "tableSummaryTitle";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item"><div class="hiprint-option-item-label">${i18n.__("底部聚合标题")}</div><div class="hiprint-option-item-field"><select class="auto-submit"><option value="">${i18n.__("默认")}</option><option value="true">${i18n.__("显示")}</option><option value="false">${i18n.__("隐藏")}</option></select></div></div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						return !("false" == this.target.find("select").val());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableSummaryText = (function () {
				function t() {
					this.name = "tableSummaryText";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("底部聚合文本")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("聚合类型")}:" class="auto-submit" >\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableSummaryColspan = (function () {
				function t() {
					this.name = "tableSummaryColspan";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("底部聚合合并列数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="number" min="0" step="1" placeholder="${i18n.__("合并列数")}" class="auto-submit" >\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableSummaryAlign = (function () {
				function t() {
					this.name = "tableSummaryAlign";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("底部聚合类型左右对齐")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="left" >${i18n.__("居左")}</option>\n        <option value="center" >${i18n.__("居中")}</option>\n        <option value="right" >${i18n.__("居右")}</option>\n        <option value="justify" >${i18n.__("两端对齐")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableSummaryNumFormat = (function () {
				function t() {
					this.name = "tableSummaryNumFormat";
				}

				return (
					(t.prototype.createTarget = function () {
						var list = [{ t: `${i18n.__("整数")}`, v: "0" }],
							num = [1, 2, 3, 4, 5, 6];
						num.forEach(function (n) {
							list.push({ t: i18n.__n(`保留%s位`, n), v: "" + n });
						});
						var n = `\n            <option value="" >${i18n.__("默认")}</option>`;
						list.forEach(function (e) {
							n += '\n            <option value="' + (e.v || "") + '">' + (e.t || "") + "</option>";
						});
						this.target = $(
							`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("底部聚合小数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit"></select>\n        </div>\n    </div>`,
						);
						this.target.find(".auto-submit").append($(n));
						return this.target;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			showCodeTitle = (function () {
				function t() {
					this.name = "showCodeTitle";
				}
				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								` <div class="hiprint-option-item" title="条形码底部是否显示内容">\n        <div class="hiprint-option-item-label">\n          ${i18n.__("显示码值")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n            <option value="true" >${i18n.__("显示")}</option>\n            <option value="false" >${i18n.__("隐藏")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("true" == this.target.find("select").val()) return !0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			tableSummaryFormatter = (function () {
				function t() {
					this.name = "tableSummaryFormatter";
				}
				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("底部聚合格式化函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(column,fieldPageData,tableData,options){ return \'<td></td>\'; }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			upperCase = (function () {
				function t() {
					this.name = "upperCase";
				}
				return (
					(t.prototype.createTarget = function () {
						var list = [
							{ t: "「小写」十点八", v: "0" },
							{ t: "「小写」一十点八", v: "1" },
							{ t: "「大写」拾点捌", v: "2" },
							{ t: "「大写」壹拾点捌", v: "3" },
							{ t: "「金额」人民币拾元捌角", v: "4" },
							{ t: "「金额」人民币壹拾元捌角", v: "5" },
							{ t: "「金额」人民币壹拾元捌角零分", v: "6" },
							{ t: "「金额」壹拾元捌角零分", v: "7" },
						];
						var n = `\n<option value="">${i18n.__("默认")}</option>`;
						list.forEach((e) => {
							n += `\n<option value='${e.v}'>${e.t}</option>`;
						});
						this.target = $(
							`<div class="hiprint-option-item hiprint-option-item-row">\n<div class="hiprint-option-item-label">\n${i18n.__("转大小写")}\n</div>\n<div class="hiprint-option-item-field">\n<select class="auto-submit"></select>\n</div>\n</div>`,
						);
						this.target.find(".auto-submit").append($(n));
						return this.target;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			// 表格底部合计栏
			tableSummary = (function () {
				function t() {
					this.name = "tableSummary";
				}
				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item"><div class="hiprint-option-item-label">${i18n.__("底部聚合类型")}</div><div class="hiprint-option-item-field"><select class="auto-submit"><option value="">${i18n.__("不聚合")}</option><option value="count">${i18n.__("计数")}</option><option value="sum">${i18n.__("合计")}</option><option value="avg">${i18n.__("平均值")}</option><option value="min">${i18n.__("最小值")}</option><option value="max">${i18n.__("最大值")}</option><option value="text">${i18n.__("仅文本")}</option></select></div></div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						return this.target.find("select").val();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			st = (function () {
				function t() {
					this.name = "topOffset";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("顶部偏移")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="text" placeholder="${i18n.__("偏移量")}pt" class="auto-submit">\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			panelLayoutOptions = (function () {
				function t() {
					this.name = "panelLayoutOptions";
				}
				return (
					(t.prototype.createTarget = function () {
						this.target = $(
							`<div class="hiprint-option-item hiprint-option-item-row"><div class="hiprint-option-item-label">${i18n.__("面板排列")}</div></div>`,
						);
						this.layoutType = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: baseline;"><div style="width:25%">${i18n.__("排列方式")}:</div><select style="width:75%" class="auto-submit"><option value="column" >${i18n.__("纵向")}</option><option value="row" >${i18n.__("横向")}</option></select></div></div>`,
						);
						this.layoutRowGap = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: baseline;margin-top: 4px"><div style="width:25%">${i18n.__("垂直间距")}:</div><input style="width:75%" type="text" placeholder="${i18n.__("垂直间距mm")}" class="auto-submit"></div>`,
						);
						this.layoutColumnGap = $(
							`<div class="hiprint-option-item-field" style="display: flex;align-items: baseline;margin-top: 4px"><div style="width:25%">${i18n.__("水平间距")}:</div><input style="width:75%" type="text" placeholder="${i18n.__("水平间距mm")}" class="auto-submit"></div>`,
						);
						this.target.append(this.layoutType);
						this.target.append(this.layoutRowGap);
						this.target.append(this.layoutColumnGap);
						return this.target;
					}),
					(t.prototype.getValue = function () {
						let opt = {
							layoutType: this.layoutType.find("select").val() || "column",
							layoutRowGap: parseInt(this.layoutRowGap.find("input").val() || 0),
							layoutColumnGap: parseInt(this.layoutColumnGap.find("input").val() || 0),
						};
						let options = Object.assign({}, this.options, opt);
						return options;
					}),
					(t.prototype.setValue = function (t) {
						this.options = t;
						this.layoutType.find("select").val(t.layoutType || "column");
						this.layoutRowGap.find("input").val(t.layoutRowGap);
						this.layoutColumnGap.find("input").val(t.layoutColumnGap);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			lt = (function () {
				function t() {
					this.name = "gridColumns";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("一行多组")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="2" >${i18n.__("一行二列")}</option>\n        <option value="3" >${i18n.__("一行三列")}</option>\n        <option value="4" >${i18n.__("一行四列")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			ut = (function () {
				function t() {
					this.name = "gridColumnsGutter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("一行多组间隔")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.25" >7.25pt</option>\n        <option value="8.5" >8.5pt</option>\n        <option value="9" >9pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.css = function (t, e) {
						if (t && t.length) {
							if (e)
								return (
									t
										.find(".table-grid-row")
										.css("margin-left", "-" + e + "pt")
										.css("margin-right", "-" + e + "pt"),
									t
										.find(".tableGridColumnsGutterRow")
										.css("padding-left", e + "pt")
										.css("padding-right", e + "pt"),
									null
								);
							t.find(".table-grid-row").map(function (t, e) {
								(e.style.marginLeft = ""), (e.style.marginRight = "");
							}),
								t.find(".tableGridColumnsGutterRow").map(function (t, e) {
									(e.style.paddingLeft = ""), (e.style.paddingRight = "");
								});
						}

						return null;
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			ith = (function () {
				function t() {
					this.name = "tableHeaderRepeat";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表格头显示")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="page" >${i18n.__("每页显示")}</option>\n        <option value="first" >${i18n.__("首页显示")}</option>\n        <option value="none" >${i18n.__("不显示")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			dt = (function () {
				function t() {
					this.name = "paddingLeft";
				}

				return (
					(t.prototype.css = function (t, e) {
						var n = t;

						if (n && n.length) {
							if (e) return n.css("padding-left", e + "pt"), "padding-left";
							n[0].style.paddingLeft = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("左内边距")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			ct = (function () {
				function t() {
					this.name = "paddingRight";
				}

				return (
					(t.prototype.css = function (t, e) {
						var n = t;

						if (n && n.length) {
							if (e) return n.css("padding-right", e + "pt"), "padding-right";
							n[0].style.paddingRight = "";
						}

						return null;
					}),
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("右内边距")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="0.75" >0.75pt</option>\n        <option value="1.5" >1.5pt</option>\n        <option value="2.25" >2.25pt</option>\n        <option value="3" >3pt</option>\n        <option value="3.75" >3.75pt</option>\n        <option value="4.5" >4.5pt</option>\n        <option value="5.25" >5.25pt</option>\n        <option value="6" >6pt</option>\n        <option value="6.75" >6.75pt</option>\n        <option value="7.5" >7.5pt</option>\n        <option value="8.25" >8.25pt</option>\n        <option value="9" >9pt</option>\n        <option value="9.75" >9.75pt</option>\n        <option value="10.5" >10.5pt</option>\n        <option value="11.25" >11.25pt</option>\n        <option value="12" >12pt</option>\n        <option value="12.75" >12.75pt</option>\n        <option value="13.5" >13.5pt</option>\n        <option value="14.25" >14.25pt</option>\n        <option value="15" >15pt</option>\n        <option value="15.75" >15.75pt</option>\n        <option value="16.5" >16.5pt</option>\n        <option value="17.25" >17.25pt</option>\n        <option value="18" >18pt</option>\n        <option value="18.75" >18.75pt</option>\n        <option value="19.5" >19.5pt</option>\n        <option value="20.25" >20.25pt</option>\n        <option value="21" >21pt</option>\n        <option value="21.75" >21.75pt</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return parseFloat(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						t &&
							(this.target.find('option[value="' + t + '"]').length ||
								this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			ht = (function () {
				function t() {
					this.name = "dataType";
				}

				return (
					(t.prototype.createTarget = function () {
						var t = this;
						return (
							(this.target = $(
								`\n        <div class="hiprint-option-item-row">\n        <div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("数据类型")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="hiprint-option-item-datatype">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="datetime" >${i18n.__("日期时间")}</option>\n        <option value="boolean" >${i18n.__("布尔")}</option>\n        </select>\n        </div>\n    </div>\n    <div class="hiprint-option-item ">\n        <div class="hiprint-option-item-label ">\n        ${i18n.__("格式")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select  class="auto-submit hiprint-option-item-datatype-select-format">\n        <option value="" >${i18n.__("默认")}</option>\n        \n        </select>\n        <input class="auto-submit  hiprint-option-item-datatype-input-format" type="text" data-type="boolean" placeholder="true:false">\n        </div>\n    </div>\n        </div>\n`,
							)),
							$(this.target.find(".hiprint-option-item-datatype")).change(function () {
								var e = $(t.target.find(".hiprint-option-item-datatype")).val();
								t.loadFormatSelectByDataType(e), t.submit(t.getValue());
							}),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find(".hiprint-option-item-datatype").val();

						if (t) {
							var e = this.target.find(".hiprint-option-item-datatype-format").val();
							return {
								dataType: t,
								format: e || void 0,
							};
						}

						return {
							dataType: void 0,
							format: void 0,
						};
					}),
					(t.prototype.setValue = function (t, e) {
						this.target.find(".hiprint-option-item-datatype").val(e.dataType || ""),
							this.loadFormatSelectByDataType(e.dataType),
							this.target.find(".hiprint-option-item-datatype-format").val(e.format || "");
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					(t.prototype.loadFormatSelectByDataType = function (t) {
						"boolean" === t
							? (this.target
									.find(".hiprint-option-item-datatype-select-format")
									.removeClass("hiprint-option-item-datatype-format")
									.hide()
									.val(""),
								this.target
									.find(".hiprint-option-item-datatype-input-format")
									.addClass("hiprint-option-item-datatype-format")
									.show())
							: "datetime" === t
								? (this.target
										.find(".hiprint-option-item-datatype-select-format")
										.addClass("hiprint-option-item-datatype-format")
										.show(),
									this.target
										.find(".hiprint-option-item-datatype-input-format")
										.removeClass("hiprint-option-item-datatype-format")
										.hide()
										.val(""),
									this.target
										.find(".hiprint-option-item-datatype-select-format")
										.html(
											`\n            <option value="" >${i18n.__("默认")}</option>\n            <option value="M/d" >M/d</option>\n            <option value="MM/dd" >MM/dd</option>\n            <option value="yy/M/d" >yy/M/d</option>\n            <option value="yy/MM/dd" >yy/MM/dd</option>\n            <option value="yyyy/M/d" >yyyy/M/d</option>\n            <option value="yyyy/MM/dd" >yyyy/MM/dd</option>\n            <option value="yy/M/d H:m" >yy/M/d H:m</option>\n            <option value="yy/M/d H:m:s" >yy/M/d H:m:s</option>\n            <option value="yy/M/d HH:mm" >yy/M/d HH:mm</option>\n            <option value="yy/M/d HH:mm:ss" >yy/M/d HH:mm:ss</option>\n            <option value="yy/MM/dd H:m" >yy/MM/dd H:m</option>\n            <option value="yy/MM/dd H:m:s" >yy/MM/dd H:m:s</option>\n            <option value="yy/MM/dd HH:mm" >yy/MM/dd HH:mm</option>\n            <option value="yy/MM/dd HH:mm:ss" >yy/MM/dd HH:mm:ss</option>\n            <option value="yyyy/M/d H:m" >yyyy/M/dd H:m</option>\n            <option value="yyyy/M/d H:m:s" >yyyy/M/d H:m:s</option>\n            <option value="yyyy/M/d HH:mm" >yyyy/M/d HH:mm</option>\n            <option value="yyyy/M/d HH:mm:ss" >yyyy/M/d HH:mm:ss</option>\n            <option value="yyyy/MM/dd H:m" >yyyy/MM/dd H:m</option>\n            <option value="yyyy/MM/dd H:m:s" >yyyy/MM/dd H:m:s</option>\n            <option value="yyyy/MM/dd HH:mm" >yyyy/MM/dd HH:mm</option>\n            <option value="yyyy/MM/dd HH:mm:ss" >yyyy/MM/dd HH:mm:ss</option>\n\n            <option value="M-d" >M-d</option>\n            <option value="MM-dd" >MM-dd</option>\n            <option value="yy-M-d" >yy-M-d</option>\n            <option value="yy-MM-dd" >yy-MM-dd</option>\n            <option value="yyyy-M-d" >yyyy-M-d</option>\n            <option value="yyyy-MM-dd" >yyyy-MM-dd</option>\n            <option value="yy-M-d H:m" >yy-M-d H:m</option>\n            <option value="yy-M-d H:m:s" >yy-M-d H:m:s</option>\n            <option value="yy-M-d HH:mm" >yy-M-d HH:mm</option>\n            <option value="yy-M-d HH:mm:ss" >yy-M-d HH:mm:ss</option>\n            <option value="yy-MM-dd H:m" >yy-MM-dd H:m</option>\n            <option value="yy-MM-dd H:m:s" >yy-MM-dd H:m:s</option>\n            <option value="yy-MM-dd HH:mm" >yy-MM-dd HH:mm</option>\n            <option value="yy-MM-dd HH:mm:ss" >yy-MM-dd HH:mm:ss</option>\n            <option value="yyyy-M-d H:m" >yyyy-M-d H:m</option>\n            <option value="yyyy-M-d H:m:s" >yyyy-M-d H:m:s</option>\n            <option value="yyyy-M-d HH:mm" >yyyy-M-d HH:mm</option>\n            <option value="yyyy-M-d HH:mm:ss" >yyyy-M-d HH:mm:ss</option>\n            <option value="yyyy-MM-dd H:m" >yyyy-MM-dd H:m</option>\n            <option value="yyyy-MM-dd H:m:s" >yyyy-MM-dd H:m:s</option>\n            <option value="yyyy-MM-dd HH:mm" >yyyy-MM-dd HH:mm</option>\n            <option value="yyyy-MM-dd HH:mm:ss" >yyyy-MM-dd HH:mm:ss</option>\n`,
										))
								: (this.target.find(".hiprint-option-item-datatype-select-format").show(),
									this.target.find(".hiprint-option-item-datatype-input-format").hide().val(""),
									this.target
										.find(".hiprint-option-item-datatype-format")
										.html(`\n            <option value="" >${i18n.__("默认")}</option>\n`));
					}),
					t
				);
			})(),
			ft = (function () {
				function t() {
					this.name = "formatter";
				}

				return (
					(t.prototype.createTarget = function () {
						var t = `<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("格式化函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(title,value,options,templateData,target){}" class="auto-submit"></textarea>\n        </div>\n    </div>`;
						return (this.target = $(t)), this.target;
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			gt = (function () {
				function t() {
					this.name = "styler";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("样式函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(value, options, target,templateData){}" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			rowcolumns = (function () {
				function t() {
					this.name = "rowsColumnsMerge";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("行/列合并函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(data, col, colIndex, rowIndex, tableData, printData){ return [1,1] }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			rowsColumnsMergeClean = (function () {
				function t() {
					this.name = "rowsColumnsMergeClean";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("跨页合并是否清除")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="true" >${i18n.__("是")}</option>\n        <option value="false" >${i18n.__("否")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("true" == this.target.find("select").val()) return !0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			mt = (function () {
				function t() {
					this.name = "footerFormatter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表格脚函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(options,rows,data,pageData){ return \'<tr></tr>\' }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			groupFieldsFormatter = (function () {
				function t() {
					this.name = "groupFieldsFormatter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("分组字段函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(type,options,data){ return [] }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			groupFormatter = (function () {
				function t() {
					this.name = "groupFormatter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("分组头格式化函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(colTotal,tableData,printData,groupData,options){ return \'${i18n.__("分组头信息")}(html)\' }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			groupFooterFormatter = (function () {
				function t() {
					this.name = "groupFooterFormatter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("分组脚格式化函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(colTotal,tableData,printData,groupData,options){ return \'${i18n.__("分组脚信息")}(html)\' }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			vt = (function () {
				function t() {
					this.name = "gridColumnsFooterFormatter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("多组表格脚函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(options,rows,data,pageData){ return \'\' }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			yt = (function () {
				function t() {
					this.name = "rowStyler";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("行样式函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(value,options){ return \'\' }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			bt = (function () {
				function t() {
					this.name = "align";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("单元格左右对齐")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="left" >${i18n.__("居左")}</option>\n        <option value="center" >${i18n.__("居中")}</option>\n        <option value="right" >${i18n.__("居右")}</option>\n        <option value="justify" >${i18n.__("两端对齐")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			Et = (function () {
				function t() {
					this.name = "vAlign";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("单元格上下对齐")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="top" >${i18n.__("上")}</option>\n        <option value="middle" >${i18n.__("中")}</option>\n        <option value="bottom" >${i18n.__("下")}</option>\n        \n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			Tt = (function () {
				function t() {
					this.name = "halign";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表格头单元格左右对齐")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="left" >${i18n.__("居左")}</option>\n        <option value="center" >${i18n.__("居中")}</option>\n        <option value="right" >${i18n.__("居右")}</option>\n        <option value="justify" >${i18n.__("两端对齐")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			Pt = (function () {
				function t() {
					this.name = "styler2";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("单元格样式函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(value,row,index,options){ return {color:\'red\' }; }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			stylerHeader = (function () {
				function t() {
					this.name = "stylerHeader";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表格头样式函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(options){ return {color:\'red\' }; }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			_t = (function () {
				function t() {
					this.name = "formatter2";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("单元格格式化函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(value,row,index,options){ return \'\'; }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			renderFormatter = (function () {
				function t() {
					this.name = "renderFormatter";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item hiprint-option-item-row">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("单元格渲染函数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <textarea style="height:80px;" placeholder="function(value,row,colIndex,options,rowIndex){ return \'<td></td>\'; }" class="auto-submit"></textarea>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("textarea").val();
						if (t) return t;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("textarea").val(t ? t.toString() : null);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			wt = (function () {
				function t() {
					this.name = "autoCompletion";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("自动补全")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="true" >${i18n.__("是")}</option>\n        <option value="false" >${i18n.__("否")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						if ("true" == this.target.find("select").val()) return !0;
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val((null == t ? "" : t).toString());
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			maxRows = (function () {
				function t() {
					this.name = "maxRows";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("每页最大行数")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <input type="number" value="1" step="1" min="1" class="auto-submit"/>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("input").val();
						if (t) return parseInt(t.toString());
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("input").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})(),
			xt = (function () {
				function t() {
					this.name = "tableFooterRepeat";
				}

				return (
					(t.prototype.createTarget = function () {
						return (
							(this.target = $(
								`<div class="hiprint-option-item">\n        <div class="hiprint-option-item-label">\n        ${i18n.__("表格脚显示")}\n        </div>\n        <div class="hiprint-option-item-field">\n        <select class="auto-submit">\n        <option value="" >${i18n.__("默认")}</option>\n        <option value="no" >${i18n.__("不显示")}</option>\n        <option value="page" >${i18n.__("每页显示")}</option>\n        <option value="last" >${i18n.__("最后显示")}</option>\n        </select>\n        </div>\n    </div>`,
							)),
							this.target
						);
					}),
					(t.prototype.getValue = function () {
						var t = this.target.find("select").val();
						if (t) return t.toString();
					}),
					(t.prototype.setValue = function (t) {
						this.target.find("select").val(t);
					}),
					(t.prototype.destroy = function () {
						this.target.remove();
					}),
					t
				);
			})();

		n.d(e, "a", function () {
			return Ct;
		});

		var Ct = (function () {
			function t() {}

			return (
				(t.init = function () {
					t.printElementOptionItems ||
						((t.printElementOptionItems = {}),
						t._printElementOptionItems.forEach(function (e) {
							t.printElementOptionItems[e.name] = e;
						}));
				}),
				(t.registerItem = function (e) {
					if (!e.name) throw new Error("styleItem must have name");
					t.init(), (t.printElementOptionItems[e.name] = e);
				}),
				(t.getItem = function (e) {
					return t.init(), t.printElementOptionItems[e];
				}),
				(t._printElementOptionItems = [
					new fontFamily(),
					new r(),
					new a(),
					new p(),
					new i(),
					new s(),
					new l(),
					new pt(),
					new u(),
					new d(),
					new c(),
					new h(),
					new f(),
					new g(),
					new m(),
					new d2(),
					new c2(),
					new v(),
					new y(),
					new b(),
					new E(),
					new qrCodeLevel(),
					new T(),
					new P(),
					new _(),
					new w(),
					new x(),
					new coordinate(),
					new widthHeight(),
					new C(),
					new imageFit(),
					new O(),
					new H(),
					new D(),
					new paperNumberContinue(),
					new watermarkOptions(),
					new I(),
					new R(),
					new pageBreak(),
					new M(),
					new M2(),
					new S(),
					new B(),
					new F(),
					new L(),
					new A(),
					new z(),
					new k(),
					new st(),
					new N(),
					new V(),
					new W(),
					new j(),
					new U(),
					new borderRadius(),
					new zIndex(),
					new K(),
					new G(),
					new q(),
					new X(),
					new Y(),
					new Q(),
					new J(),
					new Z(),
					new tt(),
					new et(),
					new nt(),
					new it(),
					new ot(),
					new textWrap(),
					new at(),
					new lt(),
					new panelLayoutOptions(),
					new ut(),
					new ith(),
					new dt(),
					new ct(),
					new ht(),
					new ft(),
					new gt(),
					new mt(),
					new rowcolumns(),
					new rowsColumnsMergeClean(),
					new groupFieldsFormatter(),
					new groupFormatter(),
					new groupFooterFormatter(),
					new vt(),
					new yt(),
					new bt(),
					new Tt(),
					new Et(),
					new Pt(),
					new stylerHeader(),
					new renderFormatter(),
					new _t(),
					new wt(),
					new maxRows(),
					new xt(),
					new tableColumnH(),
					new tableE(),
					new tableQRCodeLevel(),
					new tablept(),
					new tableSummaryTitle(),
					new tableSummaryText(),
					new tableSummaryColspan(),
					new tableSummary(),
					new tableSummaryAlign(),
					new tableSummaryNumFormat(),
					new tableSummaryFormatter(),
					new showCodeTitle(),
					new upperCase(),
					new barcodeType(),
					new qrcodeType(),
					new barColor(),
					new barWidth(),
					new barAutoWidth(),
				]),
				t
			);
		})();
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return o;
		}),
			n.d(e, "b", function () {
				return r;
			});

		var i = n(14),
			o = (function () {
				function t(t, e) {
					(this.selectedCells = []), (this.rows = t), (this.tableTatget = e);
				}

				return (
					(t.prototype.clear = function () {
						this.tableTatget.find("td").removeClass("selected");
					}),
					(t.prototype.setSingleSelect = function (t) {
						(this.startCell = t), (this.selectedCells = []);
					}),
					(t.prototype.getSingleSelect = function () {
						if (this.selectedCells.length) {
							if (1 == this.selectedCells.length)
								return 1 == this.selectedCells[0].length ? this.selectedCells[0][0] : void 0;
							if (this.selectedCells.length > 1) return;
						}

						return this.startCell;
					}),
					(t.prototype.singleSelectByXY = function (t, e) {
						var n = this.getCellByXY(t, e);
						n && (this.clear(), n && (n.cell.select(), (this.startCell = n), (this.selectedCells = [])));
					}),
					(t.prototype.multipleSelectByXY = function (t, e) {
						this.clear();
						var n = [];

						if (this.startCell) {
							var o = this.getCellByXY(t, e);

							if (o) {
								var r = i.a.mergeRect(this.startCell.cell.getTableRect(), o.cell.getTableRect());
								this.selectByRect(new a(r), n);
							}
						}

						this.selectedCells = n;
					}),
					(t.prototype.selectByRect = function (t, e) {
						this.rows.forEach(function (n, i) {
							var o = [];
							n.columns.forEach(function (e) {
								e.isInRect(t) && (o.push(new p(i, e)), e.select());
							}),
								o.length && e.push(o);
						}),
							t.changed && ((t.changed = !1), e.splice(0, e.length), this.selectByRect(t, e));
					}),
					(t.prototype.getSelectedCells = function () {
						return this.selectedCells;
					}),
					(t.prototype.getCellByXY = function (t, e) {
						var n;
						return (
							this.rows.forEach(function (i, o) {
								var r = (i.columns || [])
									.filter(function (column) {
										return column.checked;
									})
									.filter(function (n) {
										return n.isXYinCell(t, e);
									});
								r.length && (n = new p(o, r[0]));
							}),
							n
						);
					}),
					t
				);
			})(),
			r = (function () {
				return function (t) {
					(this.x = t.x), (this.y = t.y), (this.height = t.height), (this.width = t.width);
				};
			})(),
			a = (function () {
				return function (t) {
					this.rect = t;
				};
			})(),
			p = (function () {
				return function (t, e) {
					(this.rowIndex = t), (this.cell = e);
				};
			})();
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return i;
		});

		var i = (function () {
			function t() {}

			return (
				(t.createId = function () {
					return (this.id += 1), this.id;
				}),
				(t.id = 1),
				t
			);
		})();
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return p;
		});

		var _i,
			o = n(5),
			r = n(13),
			a =
				((_i = function i(t, e) {
					return (_i =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(t, e);
				}),
				function (t, e) {
					function n() {
						this.constructor = t;
					}

					_i(t, e), (t.prototype = null === e ? Object.create(e) : ((n.prototype = e.prototype), new n()));
				}),
			p = (function (t) {
				function e(e) {
					var n = t.call(this) || this;
					((n.columns = []), e && e.constructor === Array)
						? (e || []).forEach(function (t) {
								n.columns.push(new o.a(t));
							})
						: e.columns &&
							(e.columns || []).forEach(function (t) {
								n.columns.push(new o.a(t));
							});
					return n;
				}

				return (
					a(e, t),
					(e.prototype.getPrintElementOptionEntity = function () {
						var t = [];
						var all = this.allColumns
							? this.allColumns.filter(function (c) {
									return !c.checked;
								})
							: [];
						return (
							[...this.columns, ...all].forEach(function (e) {
								t.push(e.getEntity());
							}),
							t
						);
					}),
					e
				);
			})(r.a);
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return r;
		});

		var i = n(11),
			o = n(5),
			r = (function () {
				function t() {
					this.id = i.a.createId();
				}

				return (
					(t.prototype.init = function (t, e, n) {
						(this.isHead = n),
							(this.target = e || $("<tr></tr>")),
							(this.tableOptions = t),
							(this.allColumns = this.columns || []),
							this.initCells(
								(this.columns || []).filter(function (column) {
									return column.checked;
								}),
							);
					}),
					(t.prototype.getTarget = function () {
						return this.target;
					}),
					(t.prototype.initCells = function (t) {
						var e = this;
						t
							? ((this.columns = t),
								t.forEach(function (t, n) {
									t.init(e.target.find("td:eq(" + n + ")"), e.tableOptions, e.id, e.isHead);
								}))
							: ((this.columns = []),
								this.target.find("td").map(function (t, n) {
									var i = new o.a();
									i.init($(n), e.tableOptions, e.id, e.isHead), e.columns.push(i);
								}));
					}),
					(t.prototype.removeCell = function (t) {
						var e = this.columns.indexOf(t);
						this.columns[e].getTarget().remove(), this.columns.splice(e, 1);
					}),
					(t.prototype.createTableCell = function (t, e) {
						var n = new o.a();
						return (
							n.init($("<td></td>"), this.tableOptions, this.id, this.isHead),
							t > 1 && (n.getTarget().attr("rowspan", t), (n.rowspan = t)),
							e > 1 && (n.getTarget().attr("colspan", e), (n.colspan = e)),
							n
						);
					}),
					(t.prototype.insertToTargetCellLeft = function (t, e) {
						var n = this.columns.indexOf(t);
						t.getTarget().before(e.getTarget()), this.columns.splice(n, 0, e);
					}),
					(t.prototype.insertToTargetCellRight = function (t, e) {
						var n = this.columns.indexOf(t);
						this.columns[n].getTarget().after(e.getTarget()), this.columns.splice(n + 1, 0, e);
					}),
					(t.prototype.insertCellToFirst = function (t) {
						this.target.prepend(t.getTarget()), this.columns.splice(0, 0, t);
					}),
					(t.prototype.insertCellToLast = function (t) {
						this.columns.push(t), this.target.append(t.getTarget());
					}),
					(t.prototype.getPrintElementOptionEntity = function () {
						var t = [];
						return (
							[
								...this.columns,
								...this.allColumns.filter(function (c) {
									return !c.checked;
								}),
							].forEach(function (e) {
								t.push(e.getEntity());
							}),
							t
						);
					}),
					t
				);
			})();
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return o;
		});

		var i = n(10),
			o = (function () {
				function t() {}

				return (
					(t.mergeRect = function (t, e) {
						var n = Math.min(t.x, e.x),
							o = Math.min(t.y, e.y);
						return new i.b({
							x: n,
							y: o,
							height: Math.max(t.y + t.height, e.y + e.height) - o,
							width: Math.max(t.x + t.width, e.x + e.width) - n,
						});
					}),
					(t.Rect = function (t, e, n, i) {
						return {
							minX: t < n ? t : n,
							minY: e < i ? e : i,
							maxX: t < n ? n : t,
							maxY: e < i ? i : e,
						};
					}),
					t
				);
			})();
	},
	function (module, __webpack_exports__, __webpack_require__) {
		"use strict";

		__webpack_require__.d(__webpack_exports__, "a", function () {
			return TablePrintElement;
		});

		var _BasePrintElement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4),
			_HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1),
			_dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6),
			_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0),
			_PrintReferenceElement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8),
			_option_TablePrintElementOption__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18),
			_table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7),
			_hitable_HiTale__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16),
			_table_GridColumnsStructure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(20),
			_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2),
			__extends =
				((_extendStatics = function extendStatics(t, e) {
					return (_extendStatics =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(t, e);
				}),
				function (t, e) {
					function n() {
						this.constructor = t;
					}

					_extendStatics(t, e), (t.prototype = null === e ? Object.create(e) : ((n.prototype = e.prototype), new n()));
				}),
			_extendStatics,
			TablePrintElement = (function (_super) {
				function TablePrintElement(t, e) {
					var n = _super.call(this, t) || this;
					return (
						(n.gridColumnsFooterCss = "hiprint-gridColumnsFooter"),
						(n.tableGridRowCss = "table-grid-row"),
						(n.options = new _option_TablePrintElementOption__WEBPACK_IMPORTED_MODULE_5__.a(e, n.printElementType)),
						n.options.setDefault(
							new _option_TablePrintElementOption__WEBPACK_IMPORTED_MODULE_5__.a(
								_HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.table.default,
							).getPrintElementOptionEntity(),
						),
						n
					);
				}

				return (
					__extends(TablePrintElement, _super),
					(TablePrintElement.prototype.getColumns = function () {
						return this.options.columns;
					}),
					(TablePrintElement.prototype.getColumnByColumnId = function (t) {
						return this.options.getColumnByColumnId(t);
					}),
					(TablePrintElement.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.designTarget.find(".hiprint-printElement-table-content"),
								e = this.getHtml(this.designPaper);
							t.html(""),
								t.append(e[0].target.find(".table-grid-row")),
								this.printElementType.editable && this.setHitable(),
								this.setColumnsOptions();
							// 渲染完再处理样式 ==> fix 表脚边框参数设置问题
							this.css(this.designTarget, this.getData());
						}
					}),
					(TablePrintElement.prototype.css = function (t, e) {
						if ((this.getField() || !this.options.content) && !this.printElementType.formatter)
							return _super.prototype.css.call(this, t, e);
					}),
					(TablePrintElement.prototype.getDesignTarget = function (t) {
						return (
							(this.designTarget = this.getHtml(t)[0].target),
							this.css(this.designTarget, this.getData()),
							(this.designPaper = t),
							this.designTarget.find("td").hidroppable({
								accept: ".rn-draggable-item",
								onDrop: function onDrop(t, e) {},
								onDragEnter: function onDragEnter(t, e) {
									$(e).removeClass("rn-draggable-item");
								},
								onDragLeave: function onDragLeave(t, e) {
									$(e).addClass("rn-draggable-item");
								},
							}),
							this.designTarget
						);
					}),
					(TablePrintElement.prototype.getConfigOptions = function () {
						return _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.table;
					}),
					(TablePrintElement.prototype.createTarget = function (t, e, n) {
						for (
							var i = $(
									'<div class="hiprint-printElement hiprint-printElement-table" style="position: absolute;"><div class="hiprint-printElement-table-handle"></div><div class="hiprint-printElement-table-content" style="height:100%;width:100%"></span></div>',
								),
								o = this.createGridColumnsStructure(n),
								r = 0;
							r < o.gridColumns;
							r++
						) {
							o.getByIndex(r).append(this.getTableHtml(e, n));
						}

						return i.find(".hiprint-printElement-table-content").append(o.target), i;
					}),
					(TablePrintElement.prototype.createGridColumnsStructure = function (t) {
						for (
							var e = $('<div class="hi-grid-row table-grid-row"></div>'), n = 0;
							n < this.options.getGridColumns();
							n++
						) {
							var i = $(
								'<div class="tableGridColumnsGutterRow hi-grid-col" style="width:' +
									100 / this.options.getGridColumns() +
									'%;"></div>',
							);
							e.append(i);
						}

						var o = this.getGridColumnsFooterFormatter();

						if (o) {
							var r = $('<div class="hiprint-gridColumnsFooter"></div>');
							r.append(o(this.options, this.getData(t), t, [])), e.append(r);
						}

						return new _table_GridColumnsStructure__WEBPACK_IMPORTED_MODULE_8__.a(this.options.getGridColumns(), e);
					}),
					(TablePrintElement.prototype.createtempEmptyRowsTargetStructure = function (t) {
						if (this.getField()) return this.createTarget(this.printElementType.title, []);
						var e = this.createTarget(this.printElementType.title, []).clone();
						return e.find(".hiprint-printElement-tableTarget tbody tr").remove(), e;
					}),
					(TablePrintElement.prototype.getTableHtml = function (t, e) {
						var n, i;
						if (!this.getField() && this.options.content)
							return (
								(n = $("<div></div>")).append(this.options.content),
								(i = n.find("table")).addClass("hiprint-printElement-tableTarget"),
								i
							);
						if (this.printElementType.formatter)
							return (
								(n = $("<div></div>")).append(this.printElementType.formatter(t)),
								(i = n.find("table")).addClass("hiprint-printElement-tableTarget"),
								i
							);
						var o = $('<table class="hiprint-printElement-tableTarget" style="border-collapse: collapse;"></table>');
						let headerList = _table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__.a.createTableHead(
							this.getColumns(),
							this.options.getWidth() / this.options.getGridColumns(),
						);
						return (
							this.isNotDesign ? o.append(headerList) : o.append(headerList[0]),
							o.append(
								_table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__.a.createTableRow(
									this.getColumns(),
									t,
									e,
									this.options,
									this.printElementType,
								),
							),
							"no" == this.options.tableFooterRepeat ||
								_table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__.a
									.createTableFooter(this.printElementType.columns, t, this.options, this.printElementType, e, t)
									.insertBefore(o.find("tbody")),
							o
						);
					}),
					(TablePrintElement.prototype.getEmptyRowTarget = function () {
						return _table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__.a.createEmptyRowTarget(this.getColumns(), this);
					}),
					(TablePrintElement.prototype.getHtml = function (t, e) {
						this.createTempContainer();
						this.isNotDesign = e != void 0;
						var n = this.getPaperHtmlResult(t, e);
						return this.removeTempContainer(), n;
					}),
					(TablePrintElement.prototype.getPaperHtmlResult = function (t, e) {
						var n = [],
							i = this.getData(e),
							o = this.getTableHtml(i, e),
							r = this.createtempEmptyRowsTargetStructure(e);
						e ? this.updateTargetWidth(r) : this.updateTargetSize(r),
							this.css(r, i),
							this.css(o, i),
							this.getTempContainer().html(""),
							this.getTempContainer().append(r);
						// 页脚导致 分页高度的问题, -> 获取到表格脚高度后移除避免重复
						var tfh = r.find("tfoot").outerHeight() || 0;
						r.find("tfoot").remove();
						for (var a, p = this.getBeginPrintTopInPaperByReferenceElement(t), s = 0, l = !1; !l; ) {
							var u = 0,
								d = t.getPaperFooter(s);
							0 == s &&
								p > d &&
								"none" != t.panelPageRule &&
								((p = p - d + t.paperHeader),
								n.push(
									new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_2__.a({
										target: void 0,
										printLine: void 0,
									}),
								),
								(u = t.getContentHeight(s) - (p - t.paperHeader)),
								s++,
								(d = t.getPaperFooter(s)));
							var c = n.length > 0 ? n[n.length - 1].target : void 0,
								h = this.getRowsInSpecificHeight(
									e,
									u > 0 ? u : 0 == s ? d - p : t.getContentHeight(s),
									r,
									o,
									s,
									c,
									tfh,
								);
							l = h.isEnd;
							if (u < 0) {
								n[0].target = $(
									`<div style="position:absolute;background: red;color: white;padding: 0px 4px;">${i18n.__("没有足够空间进行表格分页，请调整页眉/页脚线")}</div>`,
								);
								n[0].printLine = p;
								n[0].referenceElement = new _PrintReferenceElement__WEBPACK_IMPORTED_MODULE_4__.a({
									top: this.options.getTop(),
									left: this.options.getLeft(),
									height: this.options.getHeight(),
									width: this.options.getWidth(),
									beginPrintPaperIndex: t.index,
									bottomInLastPaper: p + this.options.lHeight,
									printTopInPaper: p,
								});
								n[0].target.css("top", p + "pt");
								n[0].target.css("left", this.options.displayLeft());
								break;
							}
							var f = void 0;
							h.target && (h.target.css("left", this.options.displayLeft()), (h.target[0].height = ""));
							if (0 == s || u > 0) {
								h.target && ((a = p), h.target.css("top", p + "pt")),
									(f =
										l && null != this.options.lHeight
											? p + (h.height > this.options.lHeight ? h.height : this.options.lHeight)
											: p + h.height);
							} else {
								h.target && ((a = t.paperHeader), h.target.css("top", t.paperHeader + "pt")),
									(f = t.paperHeader + h.height);
							}
							n.push(
								new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_2__.a({
									target: h.target,
									printLine: f,
									referenceElement: new _PrintReferenceElement__WEBPACK_IMPORTED_MODULE_4__.a({
										top: this.options.getTop(),
										left: this.options.getLeft(),
										height: this.options.getHeight(),
										width: this.options.getWidth(),
										beginPrintPaperIndex: t.index,
										bottomInLastPaper: f,
										printTopInPaper: a,
									}),
								}),
							),
								s++;
							e && this.updatePanelHeight(f + this.options.getHeight(), t);
						}

						return n;
					}),
					(TablePrintElement.prototype.getRowsInSpecificHeight = function (t, e, n, i, o, r, tfh) {
						var that = this;
						var a = i.find("tbody"),
							p = _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.pt.toPx(e);

						n.find(".hiprint-printElement-tableTarget tbody").html("");
						// 不是最后显示页脚
						if ("last" != this.options.tableFooterRepeat) {
							n.find(".hiprint-printElement-tableTarget tfoot").remove();
						}
						// 仅首页显示表头
						if ("first" == this.options.tableHeaderRepeat && o > 0) {
							n.find(".hiprint-printElement-tableTarget thead").remove();
						} else if ("none" == this.options.tableHeaderRepeat) {
							// 有数据（不是design）
							if (t) {
								n.find(".hiprint-printElement-tableTarget thead").remove();
							} else {
								n.find(".hiprint-printElement-tableTarget thead").css("background", "firebrick");
								n.find(".hiprint-printElement-tableTarget thead tr").css("background", "firebrick");
							}
						}
						var noPaging = "none" == this.panel.panelPageRule;
						// 不分页, 且不是设计时, 移除 thead
						var headTr;
						if (t && noPaging) {
							var headStyle = n.find(".hiprint-printElement-tableTarget thead").attr("style");
							headTr = n.find(".hiprint-printElement-tableTarget thead tr").clone();
							if (headStyle) {
								headTr.attr("style", headStyle);
							} else {
								headTr.css({ background: "#e8e8e8" });
							}
							n.find(".hiprint-printElement-tableTarget thead").remove();
						}
						var s = n.outerHeight();
						if (!noPaging && s > p)
							return {
								target: void 0,
								length: 0,
								height: 0,
								isEnd: !1,
							};
						var getGridColumns = this.options.getGridColumns();
						for (var l = [], u = 0; u < getGridColumns; u++) {
							for (var d = n.find(".hiprint-printElement-tableTarget:eq(" + u + ")"), c = void 0, h = []; ; ) {
								// 不分页处理
								if (noPaging) {
									var trLen = a.find("tr").length;
									if (0 == trLen)
										(c = {
											height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s),
											isEnd: !0,
										}),
											t && this.options.autoCompletion && (this.autoCompletion(p, d, tfh), (s = n.outerHeight()));
									else {
										var f = a.find("tr:lt(1)");
										if (h.length == 0 && headTr) {
											d.find("tbody").append(headTr);
										}
										d.find("tbody").append(f);
										var g = f.data("rowData");
										l.push(g), h.push(g), (s = n.outerHeight());
										0 == trLen &&
											(a.prepend(f),
											l.pop(),
											h.pop(),
											(c = {
												height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s),
												isEnd: !1,
											}));
									}
								} else {
									if (s <= p)
										if (0 == a.find("tr").length)
											(c = {
												height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s),
												isEnd: !0,
											}),
												t && this.options.autoCompletion && (this.autoCompletion(p, d, tfh), (s = d.outerHeight()));
										else {
											var f = a.find("tr:lt(1)");
											if (that.options.rowsColumnsMerge && (o > 0 || u > 0) && h.length == 0) {
												f = that.fixMergeSpan(f, a);
											}
											d.find("tbody").append(f);
											var g = f.data("rowData");
											l.push(g),
												h.push(g),
												(((s = d.outerHeight()), "last" == this.options.tableFooterRepeat ? s : (s += tfh)) > p ||
													(this.options.maxRows && h.length > +this.options.maxRows)) &&
													(a.prepend(f),
													l.pop(),
													h.pop(),
													(s = d.outerHeight()),
													(c = {
														height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s),
														isEnd: !1,
													}));
										}
								}

								if (c) {
									// 这里是table 没有tfoot, 后面再看什么原因...
									if ("last" == this.options.tableFooterRepeat && !c.isEnd) break;
									if ("no" !== this.options.tableFooterRepeat) {
										if (noPaging) {
											d.find("tbody").append(
												_table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__.a
													.createTableFooter(
														this.printElementType.columns,
														this.getData(t),
														this.options,
														this.printElementType,
														t,
														h,
													)
													.children(),
											);
										} else {
											_table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__.a
												.createTableFooter(
													this.printElementType.columns,
													this.getData(t),
													this.options,
													this.printElementType,
													t,
													h,
												)
												.insertBefore(d.find("tbody"));
										}
										that.css(d, t);
									}
									break;
								}
							}
						}

						var m = n.find(".hiprint-printElement-tableTarget tbody tr").length,
							v = this.getGridColumnsFooterFormatter();
						v && n.find(this.gridColumnsFooterCss).html(v(this.options, this.getData(t), t, l));
						s = n.outerHeight();
						// 当每一页数据,都无法容纳表格行内容时:
						let curRow = a.find("tr:lt(1)");
						if (m == 0 && curRow.length && g == curRow.data("rowData")) {
							d.find("tbody").append(curRow);
							let height = d.find("tbody tr").outerHeight();
							a.prepend(curRow);
							return {
								target: $(
									`<div style="position:absolute;background: red;color: white;padding: 0px 4px;">${i18n.__("没有足够空间,显示下方内容, 可分页高度")}: ` +
										p +
										`px < ${i18n.__("当前需要高度")}: ` +
										height +
										"px</div>",
								).append(curRow.css("background", "blue")),
								length: m,
								height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s),
								isEnd: !1,
							};
						}
						// 方便调试看 值...
						var zz =
							0 == a.find("tr").length
								? 0 == m && r
									? {
											target: void 0,
											length: 0,
											height: 0,
											isEnd: !0,
										}
									: {
											target: n.clone(),
											length: m,
											height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s),
											isEnd: !0,
										}
								: {
										target: n.clone(),
										length: m,
										height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s),
										isEnd: !1,
									};
						return zz;
					}),
					(TablePrintElement.prototype.fixMergeSpan = function (tr, tbody) {
						const nextRowMap = new Map();
						tr.children().each((_, td) => {
							var field = $(td).attr("field");
							nextRowMap.set(field, {
								rowSpan: 1,
								rowEnd: false,
							});
							tr.nextAll().each((_, nextTr) => {
								if ($(nextTr).has(`td[field=${field}][rowspan=0]`).length && !nextRowMap.get(field).rowEnd) {
									nextRowMap.set(field, { rowSpan: ++nextRowMap.get(field).rowSpan, rowEnd: false });
								} else {
									nextRowMap.set(field, { ...nextRowMap.get(field), rowEnd: true });
								}
							});

							if ($(td).attr("rowspan") < 1) {
								$(td).attr("rowspan", nextRowMap.get(field).rowSpan);
								$(td).css("display", "");
								if (this.options.rowsColumnsMergeClean) {
									$(td).text("");
								}
							}
						});
						return tr;
					}),
					(TablePrintElement.prototype.autoCompletion = function (t, e, tfh) {
						var that = this;
						for (var n, i = this.getEmptyRowTarget(), o = e.outerHeight() + tfh; t > o; ) {
							(n = i.clone()), e.find("tbody").append(n), (o = e.outerHeight() + tfh);
							if (that.options.maxRows && e.find("tbody").children().length > that.options.maxRows) {
								break;
							}
						}

						n && n.remove();
					}),
					(TablePrintElement.prototype.getData = function (t) {
						if (!t) {
							// 设计时表格 测试数据
							try {
								let testData = this.options.testData || "[{}]";
								return JSON.parse(testData);
							} catch (e) {
								console.log("table testData parse error", e);
								return [{}];
							}
						}
						var f = this.getField();
						var e = f ? f.split(".").reduce((a, c) => (a ? a[c] : t ? t[c] : ""), !1) || "" : "";
						return e ? JSON.parse(JSON.stringify(e)) : [];
					}),
					(TablePrintElement.prototype.onResize = function (t, e, n, i, o) {
						_super.prototype.updateSizeAndPositionOptions.call(this, o, i, n, e),
							_table_TableExcelHelper__WEBPACK_IMPORTED_MODULE_6__.a.resizeTableCellWidth(
								this.designTarget,
								this.getColumns(),
								this.options.getWidth(),
							);
					}),
					(TablePrintElement.prototype.getReizeableShowPoints = function () {
						return ["s", "e"];
					}),
					(TablePrintElement.prototype.design = function (t, e) {
						var n = this;
						this.designTarget.hidraggable({
							handle: this.designTarget.find(".hiprint-printElement-table-handle"),
							axis: n.options.axis ? n.options.axis : void 0,
							designTarget: n,
							onDrag: function onDrag(t, i, o) {
								n.updateSizeAndPositionOptions(i, o), n.createLineOfPosition(e);
								_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__.a.instance.changed = !0;
							},
							moveUnit: "pt",
							minMove: _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.movingDistance,
							onBeforeDrag: function onBeforeDrag(t) {
								(_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__.a.instance.draging = !0), n.createLineOfPosition(e);
							},
							getScale: function getScale() {
								return n.designPaper.scale || 1;
							},
							onStopDrag: function onStopDrag(t) {
								if (_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__.a.instance.changed)
									_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.event.trigger(
										"hiprintTemplateDataChanged_" + n.templateId,
										"移动",
									);
								(_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__.a.instance.draging = !1),
									(_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__.a.instance.changed = !1),
									n.removeLineOfPosition();
							},
						}),
							this.printElementType.editable && this.setHitable(),
							this.setColumnsOptions(),
							this.designTarget.hireizeable({
								showPoints: n.getReizeableShowPoints(),
								// 是否显示宽高box
								showSizeBox: _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.showSizeBox,
								noContainer: !0,
								onBeforeResize: function onBeforeResize() {
									_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__.a.instance.draging = !0;
								},
								getScale: function getScale() {
									return n.designPaper.scale || 1;
								},
								onResize: function onResize(t, i, o, r, a) {
									n.onResize(t, i, o, r, a), n.hitable && n.hitable.updateColumnGrips(), n.createLineOfPosition(e);
								},
								onStopResize: function onStopResize(r) {
									_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.event.trigger(
										"hiprintTemplateDataChanged_" + n.templateId,
										r ? "旋转" : "大小",
									);
									(_HiPrintlib__WEBPACK_IMPORTED_MODULE_9__.a.instance.draging = !1), n.removeLineOfPosition();
								},
							}),
							this.bingKeyboardMoveEvent(this.designTarget, e);
					}),
					(TablePrintElement.prototype.setHitable = function () {
						var t = this;
						(this.hitable = new _hitable_HiTale__WEBPACK_IMPORTED_MODULE_7__.a({
							templateId: t.templateId,
							table: this.designTarget.find(".hiprint-printElement-tableTarget:eq(0)"),
							rows: this.getColumns(),
							resizeRow: !1,
							resizeColumn: !0,
							fields: this.options.fields,
							trs: this.designTarget.find(".hiprint-printElement-tableTarget:eq(0)").find("tbody tr"),
							handle: this.designTarget.find(".hiprint-printElement-tableTarget:eq(0)").find("thead"),
							isEnableEdit: this.printElementType.editable ? this.printElementType.editable : !0,
							columnDisplayEditable:
								this.printElementType.columnDisplayEditable != undefined
									? this.printElementType.columnDisplayEditable
									: !0,
							columnDisplayIndexEditable:
								this.printElementType.columnDisplayIndexEditable != undefined
									? this.printElementType.columnDisplayIndexEditable
									: !0,
							columnResizable:
								this.printElementType.columnResizable != undefined ? this.printElementType.columnResizable : !0,
							columnAlignEditable:
								this.printElementType.columnAlignEditable != undefined ? this.printElementType.columnAlignEditable : !0,
							isEnableEditText:
								this.printElementType.columnTitleEditable != undefined ? this.printElementType.columnTitleEditable : !0,
							isEnableEditField:
								this.printElementType.isEnableEditField != undefined ? this.printElementType.isEnableEditField : !0,
							isEnableContextMenu:
								this.printElementType.isEnableContextMenu != undefined ? this.printElementType.isEnableContextMenu : !0,
							isEnableInsertRow:
								this.printElementType.isEnableInsertRow != undefined ? this.printElementType.isEnableInsertRow : !0,
							isEnableDeleteRow:
								this.printElementType.isEnableDeleteRow != undefined ? this.printElementType.isEnableDeleteRow : !0,
							isEnableInsertColumn:
								this.printElementType.isEnableInsertColumn != undefined
									? this.printElementType.isEnableInsertColumn
									: !0,
							isEnableDeleteColumn:
								this.printElementType.isEnableDeleteColumn != undefined
									? this.printElementType.isEnableDeleteColumn
									: !0,
							isEnableMergeCell:
								this.printElementType.isEnableMergeCell != undefined ? this.printElementType.isEnableMergeCell : !0,
						})),
							_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.event.on(
								"updateTable" + this.hitable.id,
								function () {
									t.updateDesignViewFromOptions();
									_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.event.trigger(
										"hiprintTemplateDataChanged_" + t.templateId,
										"调整表头",
									);
								},
							);
					}),
					(TablePrintElement.prototype.setColumnsOptions = function () {
						var t = this;
						this.designTarget
							.find(".hiprint-printElement-tableTarget:eq(0)")
							.find("thead td")
							.bind("click.hiprint", function (e) {
								var n = $(e.target).attr("id") || $(e.target).attr("column-id"),
									i = t.getColumnByColumnId(n);

								if (i) {
									var o = t.getPrintElementOptionItemsByName("tableColumn");

									_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.event.trigger(
										t.getPrintElementSelectEventKey(),
										{
											printElement: t,
											customOptionsInput: [
												{
													title: (i.title || `${i.id}(id)`) + `-${i18n.__("列属性")}`,
													optionItems: o,
													options: i,
													callback: function callback(t) {
														o.forEach(function (t) {
															var e = t.getValue();
															if ("title" == t.name && e && !e.trim().endsWith("#") && !e.trim().startsWith("#")) {
																var n = e ? e.split("#") : "";
																(i.title = n[0]), n.length > 1 && (i.columnId = i.field = n[1]);
																i.columnId && i.target.attr("column-id", i.columnId);
																t.target.find("textarea").val(n[0]);
																return;
															}
															i[t.name] = e;
														});
													},
												},
											],
										},
									);
								} else
									_assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.event.trigger(
										t.getPrintElementSelectEventKey(),
										{
											printElement: t,
										},
									);
							});
					}),
					(TablePrintElement.prototype.filterOptionItems = function (t) {
						var e = _super.prototype.filterOptionItems.call(this, t);

						return this.printElementType.editable && 1 == this.options.columns.length
							? e
							: t.filter(function (t) {
									return "columns" != t.name;
								});
					}),
					(TablePrintElement.prototype.getFooterFormatter = function () {
						var footerFormatter = void 0;
						if (
							(this.printElementType.footerFormatter && (footerFormatter = this.printElementType.footerFormatter),
							this.options.footerFormatter)
						)
							try {
								var s = "footerFormatter=" + this.options.footerFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return footerFormatter;
					}),
					(TablePrintElement.prototype.getGridColumnsFooterFormatter = function () {
						var gridColumnsFooterFormatter = void 0;
						if (
							(this.printElementType.gridColumnsFooterFormatter &&
								(gridColumnsFooterFormatter = this.printElementType.gridColumnsFooterFormatter),
							this.options.gridColumnsFooterFormatter)
						)
							try {
								var s = "gridColumnsFooterFormatter=" + this.options.gridColumnsFooterFormatter;
								eval(s);
							} catch (t) {
								console.log(t);
							}
						return gridColumnsFooterFormatter;
					}),
					TablePrintElement
				);
			})(_BasePrintElement__WEBPACK_IMPORTED_MODULE_0__.a);
	},
	function (t, e, n) {
		"use strict";

		var i = (function () {
				return function (t) {
					(this.table = t.table),
						(this.templateId = t.templateId),
						(this.fields = t.fields),
						(this.isEnableEdit = t.isEnableEdit),
						(this.trs = t.trs),
						(this.resizeRow = t.resizeRow),
						(this.resizeColumn = t.resizeColumn),
						(this.isEnableEditField = t.isEnableEditField),
						(this.isEnableContextMenu = t.isEnableContextMenu),
						(this.isEnableEditField = t.isEnableEditField),
						(this.isEnableInsertRow = t.isEnableInsertRow),
						(this.isEnableDeleteRow = t.isEnableDeleteRow),
						(this.isEnableInsertColumn = t.isEnableInsertColumn),
						(this.isEnableDeleteColumn = t.isEnableDeleteColumn),
						(this.isEnableMergeCell = t.isEnableMergeCell),
						(this.columnResizable = t.columnResizable),
						(this.columnAlignEditable = t.columnAlignEditable);
				};
			})(),
			o = (function () {
				function t(t) {
					this.options = new i(t);
				}

				return (
					(t.prototype.enableEidt = function () {
						this.options.isEnableEdit;
					}),
					(t.prototype.disableEdit = function () {
						this.options.isEnableEdit;
					}),
					(t.prototype.isEnableEdit = function () {
						return this.options.isEnableEdit;
					}),
					t
				);
			})(),
			r = n(0),
			a = (function () {
				return function (t) {
					(this.cell = t.cell),
						(this.link = t.link),
						(this.linkType = t.linkType),
						(this.bottom = t.bottom),
						(this.rightMost = t.rightMost),
						(this.rowLevel = t.rowLevel),
						(this.columnLevel = t.columnLevel),
						(this.indexInTableGridRow = t.indexInTableGridRow),
						(this.indexInTableGridColumn = t.indexInTableGridColumn);
				};
			})(),
			p = n(10),
			s = (function () {
				function t() {}

				return (
					(t.getLeftTableCell = function (t, e) {
						var n;
						return (
							t.forEach(function (t, i) {
								t.cell && i < e && (n = t.cell);
							}),
							n
						);
					}),
					(t.getIndex = function (t, e) {
						var n;
						return (
							t.forEach(function (t, i) {
								t.cell && t.cell.id == e && (n = i);
							}),
							n
						);
					}),
					t
				);
			})(),
			l = n(13),
			u = n(11),
			d = (function () {
				return function (t, e) {
					(this.target = t), (this.grips = e);
				};
			})(),
			c = (function () {
				return function (t) {
					this.target = t;
				};
			})(),
			h = (function () {
				return function () {
					this.rowColumns = [];
				};
			})(),
			f = (function () {
				function t() {}

				return (
					(t.getColumnsWidth = function (e, n) {
						var i = {},
							o = t.allAutoWidth(e);
						return (
							e.rowColumns.forEach(function (t) {
								var e = n - 0,
									r = (t.width / o) * (e > 0 ? e : 0);
								i[t.id] = r;
							}),
							i
						);
					}),
					(t.resizeTableCellWeight = function (t) {
						t.forEach(function (t) {
							t.columns.forEach(function (t) {
								t.hasWidth && $(t.getTarget()).css("width", t.width + "pt");
							});
						});
					}),
					(t.allAutoWidth = function (t) {
						var e = 0;
						return (
							t.rowColumns.forEach(function (t) {
								e += t.width;
							}),
							e
						);
					}),
					(t.reconsitutionTableColumnTree = function (t, e, n) {
						for (
							var i = e || new h(),
								o = function o(e) {
									(i.totalLayer = e + 1),
										(i[e] = t[e].columns),
										(i.rowColumns = i.rowColumns.concat(
											i[e].filter(function (n) {
												return n.rowspan == t.length - e;
											}),
										));
								},
								r = 0;
							r < t.length;
							r++
						) {
							o(r);
						}

						return i;
					}),
					t
				);
			})(),
			g = n(2),
			m = (function () {
				function t(t) {
					(this.signature = "HiTresizer"), (this.hitable = t), (this.rows = t.rows), (this.target = t.target);
				}

				return (
					(t.prototype.init = function () {
						this.addResizeRowAndColumn(),
							this.hitable.optionsCoat.options.resizeColumn && this.createColumnGrips(),
							this.hitable.optionsCoat.options.resizeRow && this.createRowGrips();
					}),
					(t.prototype.resizeTableCellWidth = function () {
						f.resizeTableCellWeight(this.rows);
					}),
					(t.prototype.addResizeRowAndColumn = function () {}),
					(t.prototype.createColumnGrips = function () {
						var t = this,
							e = this,
							n = [],
							i = $('<div class="columngrips"/>');
						i.width(this.target.width()),
							this.rows.forEach(function (o) {
								(o.columns || [])
									.filter(function (column) {
										return column.checked;
									})
									.forEach(function (o, a) {
										if (o.getTarget().attr("haswidth")) {
											var p = $('<div class="columngrip"><div class="gripResizer"></div></div>');
											i.append(p);
											var s = new c(p);
											n.length > 0 && (n[n.length - 1].nextGrip = s),
												n.push(s),
												t.syncGrips(o, s),
												$(p).hidraggable({
													axis: "h",
													onDrag: function onDrag(t, e, n) {},
													moveUnit: "pt",
													minMove: 1,
													getScale: function getScale() {
														return (
															($(".hiprint-printPaper")[0].style.transform &&
																parseFloat($(".hiprint-printPaper")[0].style.transform.slice(6, -1))) ||
															1
														);
													},
													onBeforeDrag: function onBeforeDrag(t) {
														if (((g.a.instance.draging = !0), !s.nextGrip)) return !1;
														(e.dragingGrip = s),
															(e.dragingGrip.left = parseFloat(e.dragingGrip.target.css("left").replace("px", ""))),
															s.target.addClass("columngripDraging");
													},
													onStopDrag: function onStopDrag(n) {
														g.a.instance.draging = !1;
														var i = parseFloat(e.dragingGrip.target.css("left").replace("px", "")),
															o = r.a.px.toPt(i - e.dragingGrip.left);
														// 表格列宽限制 最小宽度为10pt
														if (s.cell.width + o < 10) {
															o = 10 - s.cell.width;
														} else if (s.nextGrip.cell.width - o < 10) {
															o = s.nextGrip.cell.width - 10;
														}
														(s.cell.width = s.cell.width + o),
															(s.nextGrip.cell.width = s.nextGrip.cell.width - o),
															t.resizeTableCellWidth(),
															s.target.removeClass("columngripDraging"),
															e.updateColumnGrips();
													},
												});
										}
									});
							}),
							this.target.before(i),
							(this.cgripContariner = new d(i, n));
					}),
					(t.prototype.updateColumnGrips = function () {
						this.cgripContariner && (this.cgripContariner.target.remove(), this.createColumnGrips());
					}),
					(t.prototype.updateRowGrips = function () {
						this.rgripContariner && (this.rgripContariner.target.remove(), this.createRowGrips());
					}),
					(t.prototype.createRowGrips = function () {
						var t = this,
							e = this,
							n = [],
							i = $('<div class="rowgrips"/>');
						this.rows.forEach(function (o, a) {
							var p = $('<div class="rowgrip"><div class="gripResizer"></div></div>');
							i.append(p);
							var s = new c(p);
							n.push(s),
								a > 0 &&
									a < t.rows.length &&
									$(p).hidraggable({
										axis: "v",
										onDrag: function onDrag(t, e, n) {},
										moveUnit: "pt",
										minMove: 1,
										onBeforeDrag: function onBeforeDrag(t) {
											(e.dragingGrip = s),
												(e.dragingGrip.top = parseFloat(e.dragingGrip.target.css("top").replace("px", ""))),
												s.target.addClass("rowgripDraging");
										},
										onStopDrag: function onStopDrag(t) {
											var n = parseFloat(e.dragingGrip.target.css("top").replace("px", "")),
												i = r.a.px.toPt(n - e.dragingGrip.top + e.rows[a].columns[0].getTarget().height());
											e.rows[a].columns[0].getTarget().css("height", i + "pt"),
												e.syncRowGrips(),
												s.target.removeClass("rowgripDraging");
										},
									});
						}),
							this.target.before(i),
							(this.rgripContariner = new d(i, n)),
							this.syncRowGrips();
					}),
					(t.prototype.syncGrips = function (t, e) {
						var n = t.getTarget();
						(e.cell = t),
							e.target.css({
								left: n.offset().left - this.target.offset().left + n.outerWidth(!1),
								height: 30,
							});
					}),
					(t.prototype.syncRowGrips = function () {
						var t = this;
						this.rgripContariner.target.height(this.target.height()),
							this.rows.forEach(function (e, n) {
								var i = e.columns[0].getTarget();
								t.rgripContariner.grips[n].target.css({
									top: i.offset().top - t.target.offset().top + i.outerHeight(!1),
									width: 30,
								});
							});
					}),
					(t.prototype.addResizerHeadRow = function () {
						this.target.find("thead").prepend();
					}),
					t
				);
			})(),
			v = (function () {
				function t() {}

				return (
					(t.prototype.init = function () {}),
					(t.prototype.updateRowGrips = function () {}),
					(t.prototype.updateColumnGrips = function () {}),
					t
				);
			})();

		n.d(e, "a", function () {
			return y;
		});

		var y = (function () {
			function t(t) {
				(this.id = u.a.createId()),
					(this.optionsCoat = new o(t)),
					(this.handle = t.handle),
					(this.target = t.table),
					this.initRows(t.rows),
					this.init(t),
					(this.tableCellSelector = new p.a(this.rows, this.target)),
					(this.resizer = this.optionsCoat.options.columnResizable ? new m(this) : new v()),
					this.resizer.init();
			}

			return (
				(t.prototype.insertRow = function (t, e, n) {
					var i = e || this.tableCellSelector.getSingleSelect(),
						o = i.cell,
						a = this.rows[i.rowIndex],
						p = i.rowIndex,
						s = this.getCellGrid(),
						u = new l.a();
					if ((u.init(this.optionsCoat, void 0, a.isHead), n && u.getTarget().addClass(n), "above" == t))
						s[p].forEach(function (t) {
							var e = t.link ? t.link : t.cell,
								n = e.width / e.colspan;

							if (0 == t.columnLevel) {
								var i = u.createTableCell();
								(i.width = n), u.insertCellToLast(i);
							} else {
								if ("column" == t.linkType) {
									var o = t.link.getTarget();
									(t.link.rowspan += 1), o.attr("rowspan", t.link.rowspan);
								}

								t.linkType;
							}
						}),
							this.rows.splice(p, 0, u),
							a.getTarget().before(u.getTarget()),
							r.a.event.trigger("newRow" + this.id, u);
					else {
						var d = p + o.rowspan - 1;
						s[d].forEach(function (t) {
							var e = t.link ? t.link : t.cell,
								n = e.width / e.colspan;

							if (t.bottom) {
								var i = u.createTableCell();
								(i.width = n), u.insertCellToLast(i);
							} else {
								if (t.cell) {
									var o = t.cell.getTarget();
									(t.cell.rowspan += 1), o.attr("rowspan", t.cell.rowspan);
								}

								if ("column" == t.linkType) {
									o = t.link.getTarget();
									(t.link.rowspan += 1), o.attr("rowspan", t.link.rowspan);
								}
							}
						}),
							this.rows.splice(d + 1, 0, u),
							this.rows[d].getTarget().after(u.getTarget()),
							r.a.event.trigger("newRow" + this.id, u);
					}
				}),
				(t.prototype.insertColumn = function (t, e, n, i) {
					var o = this,
						a = this.rows.concat(this.trRows),
						p = e || this.tableCellSelector.getSingleSelect(),
						s = p.cell,
						l = p.rowIndex,
						u = this.getCellGrid(a),
						d = u[l].filter(function (t) {
							return (t.cell && t.cell.id == s.id) || (t.link && t.link.id == s.id);
						});

					if ("left" == t) {
						var c = d[0].indexInTableGridRow;
						u.forEach(function (t, e) {
							var p = t[c],
								s = t.filter(function (t, e) {
									return e >= c && t.cell;
								});

							if (0 == p.rowLevel) {
								var l = a[e],
									u = a[e].createTableCell();
								n && u.getTarget().addClass(n),
									null != i && (u.width = i),
									s.length ? l.insertToTargetCellLeft(s[0].cell, u) : l.insertCellToLast(u),
									r.a.event.trigger("newCell" + o.id, u);
							} else if ("row" == p.linkType) {
								var d = p.link.getTarget();
								(p.link.colspan += 1), d.attr("colspan", p.link.colspan);
							}
						});
					} else {
						var h = d[d.length - 1].indexInTableGridRow;
						u.forEach(function (t, e) {
							var p = t[h],
								s = t.filter(function (t, e) {
									return e <= h && t.cell;
								});

							if (p.rightMost) {
								var l = a[e],
									u = l.createTableCell();
								n && u.getTarget().addClass(n),
									null != i && (u.width = i),
									s.length ? l.insertToTargetCellRight(s[s.length - 1].cell, u) : l.insertCellToFirst(u),
									r.a.event.trigger("newCell" + o.id, u);
							} else {
								var d = p.link || p.cell;

								if ("row" == p.linkType) {
									var c = d.getTarget();
									(d.colspan += 1), c.attr("colspan", d.colspan);
								}

								if (p.cell) {
									c = d.getTarget();
									(d.colspan += 1), c.attr("colspan", d.colspan);
								}
							}
						});
					}
				}),
				(t.prototype.deleteRow = function () {
					var t = this,
						e = this.tableCellSelector.getSingleSelect(),
						n = (e.cell, this.rows[e.rowIndex], e.rowIndex),
						i = this.getCellGrid(),
						o = this.rows[n];
					i[n].forEach(function (e, r) {
						if (e.cell) {
							if (1 == e.cell.rowspan) o.removeCell(e.cell);
							else {
								o.removeCell(e.cell);
								var a = i[n + 1].filter(function (t, e) {
										return t.cell && e > r;
									}),
									p = t.rows[n + 1],
									s = p.createTableCell(e.cell.rowspan - 1, e.cell.colspan);
								a.length ? p.insertToTargetCellLeft(a[0].cell, s) : p.insertCellToLast(s);
							}
						} else if ("column" == e.linkType) {
							var l = e.link;
							(l.rowspan -= 1), l.getTarget().attr("rowspan", l.rowspan);
						}
					}),
						o.getTarget().remove(),
						this.rows.splice(n, 1);
				}),
				(t.prototype.deleteColums = function () {
					var t = this.rows.concat(this.trRows),
						e = this.tableCellSelector.getSingleSelect(),
						n = e.cell,
						i = e.rowIndex,
						o = this.getCellGrid(t),
						r = o[i].filter(function (t) {
							return (t.cell && t.cell.id == n.id) || (t.link && t.link.id == n.id);
						})[0].indexInTableGridRow;
					o.forEach(function (e, n) {
						var i = e[r];
						i.cell
							? 1 == i.cell.colspan
								? t[n].removeCell(i.cell)
								: ((i.cell.colspan -= 1), i.cell.getTarget().attr("colspan", i.cell.colspan))
							: "row" == i.linkType && ((i.link.colspan -= 1), i.link.getTarget().attr("colspan", i.link.colspan));
					});
				}),
				(t.prototype.mergeCell = function () {
					var t = this,
						e = this.tableCellSelector.getSelectedCells();

					if (0 != e.length) {
						var n = e[0][0].cell;
						e.forEach(function (i, o) {
							i.forEach(function (i, r) {
								0 == o
									? 0 != r && ((n.colspan += i.cell.colspan), t.rows[i.rowIndex].removeCell(i.cell))
									: t.rows[i.rowIndex].removeCell(i.cell),
									0 == r && e[0][0].rowIndex + n.rowspan - 1 < i.rowIndex && (n.rowspan += i.cell.rowspan);
							});
						}),
							n.getTarget().attr("colspan", n.colspan),
							n.getTarget().attr("rowspan", n.rowspan),
							this.tableCellSelector.setSingleSelect(e[0][0]);
					}
				}),
				(t.prototype.splitCell = function () {
					var t = this.tableCellSelector.getSingleSelect(),
						e = this.getCellGrid(),
						n = s.getIndex(e[t.rowIndex], t.cell.id);

					if (t) {
						for (var i = t.rowIndex; i < t.rowIndex + t.cell.rowspan; i++) {
							for (
								var o = this.rows[i], r = i == t.rowIndex ? t.cell : s.getLeftTableCell(e[i], n), a = 0;
								a < t.cell.colspan;
								a++
							) {
								(i == t.rowIndex && 0 == a) ||
									(r ? o.insertToTargetCellRight(r, o.createTableCell()) : o.insertCellToFirst(o.createTableCell()));
							}
						}

						(t.cell.rowspan = 1),
							(t.cell.colspan = 1),
							t.cell.getTarget().attr("colspan", t.cell.colspan),
							t.cell.getTarget().attr("rowspan", t.cell.rowspan);
					}
				}),
				(t.prototype.init = function (t) {
					var e = this;
					$(this.target).addClass("hitable"),
						(this.optionsCoat.onBeforEdit = function (n) {
							if (e.optionsCoat.options.onBeforEdit && !1 === t.onBeforEdit(n)) return !1;
							return e.optionsCoat.editingCell && e.optionsCoat.editingCell.endEdit(), !0;
						}),
						$(this.target).mousedown(function (t) {
							e.optionsCoat.isLeftMouseButtonDown = !0;
						}),
						$(this.target).mouseup(function (t) {
							e.optionsCoat.isLeftMouseButtonDown = !1;
						}),
						this.initContext(),
						this.target
							.on("mousemove", function (t) {
								1 === t.buttons && e.tableCellSelector.multipleSelectByXY(t.pageX, t.pageY);
							})
							.on("mousedown", function (t) {
								1 === t.buttons && e.tableCellSelector.singleSelectByXY(t.pageX, t.pageY);
							});
				}),
				(t.prototype.initRows = function (t) {
					var e = this;

					if (((this.trRows = []), t)) {
						(this.rows = t),
							t.forEach(function (t, n) {
								t.init(e.optionsCoat, e.target.find("tr:eq(" + n + ")"), !0);
							});
						var n = this.optionsCoat.options.trs;
						n &&
							this.initRowsByTrs(n).forEach(function (t) {
								e.trRows.push(t);
							});
					} else this.rows = this.initRowsByTrs(this.target.find("tr"));
				}),
				(t.prototype.initRowsByTrs = function (t) {
					var e = this;
					return t
						.map(function (t, n) {
							var i = new l.a();
							return i.init(e.optionsCoat, $(n)), i;
						})
						.get();
				}),
				(t.prototype.enableEidt = function () {
					this.optionsCoat.enableEidt();
				}),
				(t.prototype.disableEdit = function () {
					this.optionsCoat.disableEdit();
				}),
				(t.prototype.getCellGrid = function (t) {
					var e = t || this.rows,
						n = this.getColumnStep(),
						i = new Array();
					return (
						e.forEach(function (t, e) {
							t.columns.forEach(function (t, o) {
								for (var r = 0; r < t.colspan; r++) {
									for (var p = 0, s = !1; p < n && !s; ) {
										if (((i[e] = i[e] || []), i[e][p]));
										else {
											i[e][p] = new a({
												cell: 0 == r ? t : void 0,
												link: 0 != r ? t : void 0,
												linkType: r > 0 ? "row" : void 0,
												rightMost: r == t.colspan - 1 || void 0,
												bottom: 0 == t.rowspan - 1,
												rowLevel: r,
												columnLevel: 0,
												indexInTableGridRow: p,
												indexInTableGridColumn: e,
											});

											for (var l = e + 1, u = 1; u < t.rowspan; u++) {
												(i[l] = i[l] || []),
													(i[l][p] = new a({
														cell: void 0,
														link: t,
														linkType: r > 0 ? "rowColumn" : "column",
														rightMost: r == t.colspan - 1 || void 0,
														bottom: u == t.rowspan - 1,
														rowLevel: r,
														columnLevel: u,
														indexInTableGridRow: p,
														indexInTableGridColumn: l,
													})),
													(l += 1);
											}

											s = !0;
										}
										p++;
									}
								}
							});
						}),
						i
					);
				}),
				(t.prototype.setAlign = function (t) {
					var e = this.tableCellSelector.getSingleSelect();
					e && e.cell.setAlign(t);
				}),
				(t.prototype.setVAlign = function (t) {
					var e = this.tableCellSelector.getSingleSelect();
					e && e.cell.setVAlign(t);
				}),
				(t.prototype.getColumnStep = function (t) {
					var e = 0;
					return (
						this.rows.length &&
							this.rows[t || 0].columns.forEach(function (t) {
								e += t.colspan;
							}),
						e
					);
				}),
				(t.prototype.initContext = function () {
					var t = this;
					if (!this.optionsCoat.options.isEnableContextMenu) return !1;
					$(this.handle).hicontextMenu({
						menus: [
							{
								text: `${i18n.__("在上方插入行")}`,
								enabled: this.optionsCoat.options.isEnableInsertRow,
								disable: function disable() {
									return !t.tableCellSelector.getSingleSelect();
								},
								callback: function callback() {
									t.insertRow("above"), t.resizer.updateRowGrips(), r.a.event.trigger("updateTable" + t.id);
								},
							},
							{
								text: `${i18n.__("在下方插入行")}`,
								borderBottom: !0,
								enabled: this.optionsCoat.options.isEnableInsertRow,
								disable: function disable() {
									return !t.tableCellSelector.getSingleSelect();
								},
								callback: function callback() {
									t.insertRow("below"), t.resizer.updateRowGrips(), r.a.event.trigger("updateTable" + t.id);
								},
							},
							{
								text: `${i18n.__("向左方插入列")}`,
								enabled: this.optionsCoat.options.isEnableInsertColumn,
								disable: function disable() {
									return !t.tableCellSelector.getSingleSelect();
								},
								callback: function callback() {
									t.insertColumn("left"), t.resizer.updateColumnGrips(), r.a.event.trigger("updateTable" + t.id);
								},
							},
							{
								text: `${i18n.__("向右方插入列")}`,
								enabled: this.optionsCoat.options.isEnableInsertColumn,
								disable: function disable() {
									return !t.tableCellSelector.getSingleSelect();
								},
								borderBottom: !0,
								callback: function callback() {
									t.insertColumn("right"), t.resizer.updateColumnGrips(), r.a.event.trigger("updateTable" + t.id);
								},
							},
							{
								text: `${i18n.__("删除行")}`,
								enabled: this.optionsCoat.options.isEnableDeleteRow,
								disable: function disable() {
									return !t.tableCellSelector.getSingleSelect() || t.rows.length <= 1;
								},
								callback: function callback() {
									t.deleteRow(), t.resizer.updateRowGrips(), r.a.event.trigger("updateTable" + t.id);
								},
							},
							{
								text: `${i18n.__("删除列")}`,
								borderBottom: !0,
								enabled: this.optionsCoat.options.isEnableDeleteColumn,
								disable: function disable() {
									return !t.tableCellSelector.getSingleSelect() || (t.rows.length > 0 && t.rows[0].columns.length <= 1);
								},
								callback: function callback() {
									t.deleteColums(), t.resizer.updateColumnGrips(), r.a.event.trigger("updateTable" + t.id);
								},
							},
							{
								text: `${i18n.__("对齐")}`,
								borderBottom: !0,
								enabled: this.optionsCoat.options.columnAlignEditable,
								menus: [
									{
										text: `${i18n.__("左")}`,
										callback: function callback() {
											t.setAlign("left");
										},
									},
									{
										text: `${i18n.__("左右居中")}`,
										callback: function callback() {
											t.setAlign("center");
										},
									},
									{
										text: `${i18n.__("右")}`,
										callback: function callback() {
											t.setAlign("right");
										},
									},
									{
										text: `${i18n.__("默认")}`,
										borderBottom: !0,
										callback: function callback() {
											t.setAlign("");
										},
									},
									{
										text: `${i18n.__("上")}`,
										callback: function callback() {
											t.setVAlign("top");
										},
									},
									{
										text: `${i18n.__("垂直居中")}`,
										callback: function callback() {
											t.setVAlign("middle");
										},
									},
									{
										text: `${i18n.__("下")}`,
										callback: function callback() {
											t.setVAlign("bottom");
										},
									},
									{
										text: `${i18n.__("默认")}`,
										callback: function callback() {
											t.setVAlign("");
										},
									},
								],
							},
							{
								text: `${i18n.__("合并单元格")}`,
								enabled: this.optionsCoat.options.isEnableMergeCell,
								disable: function disable() {
									return t.tableCellSelector.getSingleSelect();
								},
								callback: function callback() {
									t.mergeCell(), r.a.event.trigger("updateTable" + t.id);
								},
							},
							{
								text: `${i18n.__("解开单元格")}`,
								enabled: this.optionsCoat.options.isEnableMergeCell,
								disable: function disable() {
									var e = t.tableCellSelector.getSingleSelect();
									return !e || (1 == e.cell.rowspan && 1 == e.cell.colspan);
								},
								callback: function callback() {
									t.splitCell(), r.a.event.trigger("updateTable" + t.id);
								},
							},
						].filter(function (t) {
							return t.enabled;
						}),
					});
				}),
				(t.prototype.getTableWidth = function () {
					return r.a.px.toPt(this.target.outerWidth(!1));
				}),
				(t.prototype.updateColumnGrips = function () {
					this.resizer.updateColumnGrips();
				}),
				(t.prototype.updateRowGrips = function () {
					this.resizer.updateRowGrips();
				}),
				t
			);
		})();
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return i;
		});

		var i = (function () {
			return function (t, e, n) {
				(this.tid = t), (this.options = e), (this.printElementType = n);
			};
		})();
	},
	function (t, e, n) {
		"use strict";

		var i = n(3),
			o = n(12),
			r =
				((function () {})(),
				(function () {
					return function (t) {
						(this.width = t.width),
							(this.title = t.title),
							(this.field = t.field),
							(this.checked = t.checked),
							(this.columnId = t.columnId),
							(this.fixed = !1),
							(this.rowspan = t.rowspan || 1),
							(this.colspan = t.colspan || 1),
							(this.align = t.align),
							(this.halign = t.halign),
							(this.vAlign = t.vAlign),
							(this.renderFormatter = t.renderFormatter),
							(this.formatter2 = t.formatter2),
							(this.styler2 = t.styler2),
							(this.stylerHeader = t.stylerHeader),
							(this.tableColumnHeight = t.tableColumnHeight),
							(this.tableTextType = t.tableTextType),
							(this.tableBarcodeMode = t.tableBarcodeMode),
							(this.tableQRCodeLevel = t.tableQRCodeLevel),
							(this.tableSummaryTitle = t.tableSummaryTitle),
							(this.tableSummaryText = t.tableSummaryText),
							(this.tableSummaryColspan = t.tableSummaryColspan),
							(this.tableSummary = t.tableSummary),
							(this.tableSummaryAlign = t.tableSummaryAlign),
							(this.tableSummaryNumFormat = t.tableSummaryNumFormat),
							(this.tableSummaryFormatter = t.tableSummaryFormatter),
							(this.showCodeTitle = t.showCodeTitle),
							(this.upperCase = t.upperCase);
					};
				})()),
			a = n(5);
		n.d(e, "a", function () {
			return l;
		});

		var _p,
			s =
				((_p = function p(t, e) {
					return (_p =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(t, e);
				}),
				function (t, e) {
					function n() {
						this.constructor = t;
					}

					_p(t, e), (t.prototype = null === e ? Object.create(e) : ((n.prototype = e.prototype), new n()));
				}),
			l = (function (t) {
				function e(e, n) {
					var i = this;
					((e = e || {}),
					((i = t.call(this, e) || this).lHeight = e.lHeight),
					(i.autoCompletion = e.autoCompletion),
					(i.tableFooterRepeat = e.tableFooterRepeat),
					n) &&
						((i.columns = []),
						n.editable && e.columns && e.columns.length
							? e.columns.forEach(function (t) {
									var e = [];
									t.forEach(function (t) {
										var i = new r(t),
											o = n.getColumnByColumnId(i.columnId),
											p = o ? $.extend(o, i) : new a.a(i);
										e.push(p);
									}),
										i.columns.push(new o.a(e));
								})
							: n.columns.forEach(function (t) {
									i.columns.push(new o.a(t));
								}));
					return i;
				}

				return (
					s(e, t),
					(e.prototype.getColumnByColumnId = function (t) {
						return this.makeColumnObj()[t];
					}),
					(e.prototype.makeColumnObj = function () {
						var t = {};
						return (
							this.columns &&
								this.columns.forEach(function (e) {
									e.columns.forEach(function (e) {
										(e.id || e.columnId) && (t[e.id || e.columnId] = e);
									});
								}),
							t
						);
					}),
					(e.prototype.getGridColumns = function () {
						return this.gridColumns || 1;
					}),
					(e.prototype.getPrintElementOptionEntity = function () {
						var e = t.prototype.getPrintElementOptionEntity.call(this);
						e.fields = this.fields;
						return (
							this.columns &&
								((e.columns = []),
								this.columns.forEach(function (t) {
									var n = t.getPrintElementOptionEntity().map(function (t) {
										return new r(t);
									});
									e.columns.push(n);
								})),
							e
						);
					}),
					e
				);
			})(i.a);
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return i;
		});

		var i = (function () {
			return function () {
				this.rowColumns = [];
			};
		})();
	},
	function (t, e, n) {
		"use strict";

		n.d(e, "a", function () {
			return i;
		});

		var i = (function () {
			function t(t, e) {
				(this.gridColumns = t), (this.target = e);
			}

			return (
				(t.prototype.getByIndex = function (t) {
					return this.target.find(".hi-grid-col:eq(" + t + ")");
				}),
				t
			);
		})();
	},
	function (t, e, n) {
		t.exports = n(33);
	},
	function (t, e) {
		!(function (t) {
			function e(e) {
				var n = t.data(e.data.target, "hidraggable"),
					i = n.options,
					o = n.proxy,
					r = e.data,
					a = r.startLeft + (e.pageX - r.startX) / (n.options.getScale() || 1),
					p = r.startTop + (e.pageY - r.startY) / (n.options.getScale() || 1);
				o &&
					(o.parent()[0] == document.body
						? ((a = null != i.deltaX && null != i.deltaX ? e.pageX + i.deltaX : e.pageX - e.data.offsetWidth),
							(p = null != i.deltaY && null != i.deltaY ? e.pageY + i.deltaY : e.pageY - e.data.offsetHeight))
						: (null != i.deltaX && null != i.deltaX && (a += e.data.offsetWidth + i.deltaX),
							null != i.deltaY && null != i.deltaY && (p += e.data.offsetHeight + i.deltaY))),
					e.data.parent != document.body && ((a += t(e.data.parent).scrollLeft()), (p += t(e.data.parent).scrollTop())),
					"h" == i.axis
						? (r.left = a)
						: "v" == i.axis
							? (r.top = p)
							: e.shiftKey && e.altKey
								? (r.top = p)
								: e.shiftKey
									? (r.left = a)
									: ((r.left = a), (r.top = p));
			}

			function n(e) {
				var n = t.data(e.data.target, "hidraggable"),
					i = n.options,
					o = n.proxy;
				o || (o = t(e.data.target)),
					o.css({
						left: t.fn.dragLengthC(e.data.left, i),
						top: t.fn.dragLengthC(e.data.top, i),
					}),
					t("body").css("cursor", i.cursor);
			}

			function i(i) {
				t.fn.hidraggable.isDragging = !0;
				var o = t.data(i.data.target, "hidraggable"),
					r = o.options,
					a = t(".hidroppable")
						.filter(function () {
							return i.data.target != this;
						})
						.filter(function () {
							var e = t.data(this, "hidroppable").options.accept;
							return (
								!e ||
								t(e).filter(function () {
									return this == i.data.target;
								}).length > 0
							);
						});
				o.hidroppables = a;
				var p = o.proxy;
				return (
					p ||
						(r.proxy
							? ((p =
									"clone" == r.proxy
										? t(i.data.target).clone().insertAfter(i.data.target)
										: r.proxy.call(i.data.target, i.data.target)),
								(o.proxy = p))
							: (p = t(i.data.target))),
					p.css("position", "absolute"),
					e(i),
					n(i),
					r.onStartDrag.call(i.data.target, i),
					!1
				);
			}

			function createVerLine(op, cp, t, tt, h, pc) {
				if (Math.abs(op[t] - cp[tt]) <= HIPRINT_CONFIG.adsorbLineMin) {
					if (op.v.length) {
						op.v.css("left", op[t] + "pt");
					} else {
						op.v = $("<div class='verLine id-" + op.id + "'></div>");
						op.v.css("height", h + "pt");
						op.v.css("left", op[t] + "pt");
						pc.append(op.v);
					}
				} else {
					op.v && op.v.remove();
				}
			}

			function removeVerLine(op) {
				if (op) op.v && op.v.remove();
				$(".verLine").remove();
			}

			function createHorLine(op, cp, t, tt, w, pc) {
				if (Math.abs(op[t] - cp[tt]) <= HIPRINT_CONFIG.adsorbLineMin) {
					if (op.h.length) {
						op.h.css("top", op[t] + "pt");
					} else {
						op.h = $("<div class='horLine id-" + op.id + "'></div>");
						op.h.css("width", w + "pt");
						op.h.css("top", op[t] + "pt");
						pc.append(op.h);
					}
				} else {
					op.h && op.h.remove();
				}
			}

			function removeHorLine(op) {
				if (op) op.h && op.h.remove();
				$(".horLine").remove();
			}

			function o(i) {
				// 移动开始动作
				var o = t.data(i.data.target, "hidraggable");
				e(i);
				if (
					!(i.ctrlKey || i.metaKey) &&
					(i.data.target.className.startsWith("resize-panel") ||
						"2" == i.data.target.style.zIndex ||
						i.data.target.className.startsWith("hiprint-printElement"))
				) {
					var data = i.data;
					if (
						t(".mouseRect").length == 0 &&
						o.options.designTarget &&
						o.options.designTarget.panel.printElements.filter(function (el) {
							return (
								"block" == el.designTarget.children().last().css("display") &&
								!el.printElementType.type.includes("table")
							);
						}).length <= 1
					) {
						let left = window.hinnn.px.toPt(data.left);
						let top = window.hinnn.px.toPt(data.top);
						let cPosition = o.options.designTarget.options;
						cPosition.left = left;
						cPosition.top = top;
						cPosition.right = left + cPosition.width;
						cPosition.bottom = top + cPosition.height;
						cPosition.vCenter = left + cPosition.width / 2;
						cPosition.hCenter = top + cPosition.height / 2;
						(() => {
							let oPositions = o.options.designTarget.panel.printElements
								.filter((el) => el.id != o.options.designTarget.id)
								.map((el) => {
									let { left, top, width, height } = el.options;
									let right = left + width,
										vCenter = left + width / 2,
										hCenter = top + height / 2;
									let cVCenter = cPosition.left + cPosition.width / 2,
										cHCenter = cPosition.top + cPosition.height / 2,
										cRight = cPosition.left + cPosition.width;
									let distance, d1, d2, d3;
									d1 = Math.sqrt(Math.pow(left - cPosition.left, 2) + Math.pow(hCenter - cHCenter, 2));
									d2 = Math.sqrt(Math.pow(vCenter - cVCenter, 2) + Math.pow(hCenter - cHCenter, 2));
									d3 = Math.sqrt(Math.pow(right - cRight, 2) + Math.pow(hCenter - cHCenter, 2));
									distance = Math.min(d1, d2, d3);
									return {
										...el.options,
										distance,
										h: $(".horLine.id-" + el.id),
										v: $(".verLine.id-" + el.id),
										bottom: top + height,
										right: left + width,
										vCenter,
										hCenter,
									};
								})
								.sort((a, b) => a.distance - b.distance)
								.slice(0, 1);
							let paper = o.options.designTarget.designPaper;
							let paperContent = paper.target.find(".hiprint-printPaper-content");
							let paperW = paper.width,
								paperH = paper.height;
							let showAline = HIPRINT_CONFIG.showAdsorbLine,
								aMin = HIPRINT_CONFIG.adsorbMin,
								aLMin = HIPRINT_CONFIG.adsorbLineMin;
							oPositions.forEach((item, idx) => {
								// 元素左边线
								if (Math.abs(oPositions[idx].left - cPosition.left) <= aMin) {
									cPosition.left = oPositions[idx].left;
									removeVerLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].vCenter - cPosition.left) <= aMin) {
									cPosition.left = oPositions[idx].vCenter;
									removeVerLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].right - cPosition.left) <= aMin) {
									cPosition.left = oPositions[idx].right;
									removeVerLine(oPositions[idx]);
								}
								// 元素垂直中线
								if (Math.abs(oPositions[idx].left - cPosition.vCenter) <= aMin) {
									cPosition.left = oPositions[idx].left - cPosition.width / 2;
									removeVerLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].vCenter - cPosition.vCenter) <= aMin) {
									cPosition.left = oPositions[idx].vCenter - cPosition.width / 2;
									removeVerLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].right - cPosition.vCenter) <= aMin) {
									cPosition.left = oPositions[idx].right - cPosition.width / 2;
									removeVerLine(oPositions[idx]);
								}
								// 元素右边线
								if (Math.abs(oPositions[idx].left - cPosition.right) <= aMin) {
									cPosition.left = oPositions[idx].left - cPosition.width;
									removeVerLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].vCenter - cPosition.right) <= aMin) {
									cPosition.left = oPositions[idx].vCenter - cPosition.width;
									removeVerLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].right - cPosition.right) <= aMin) {
									cPosition.left = oPositions[idx].right - cPosition.width;
									removeVerLine(oPositions[idx]);
								}
								// 元素顶边线
								if (Math.abs(oPositions[idx].top - cPosition.top) <= aMin) {
									cPosition.top = oPositions[idx].top;
									removeHorLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].hCenter - cPosition.top) <= aMin) {
									cPosition.top = oPositions[idx].hCenter;
									removeHorLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].bottom - cPosition.top) <= aMin) {
									cPosition.top = oPositions[idx].bottom;
									removeHorLine(oPositions[idx]);
								}
								// 元素水平中线
								if (Math.abs(oPositions[idx].top - cPosition.hCenter) <= aMin) {
									cPosition.top = oPositions[idx].top - cPosition.height / 2;
									removeHorLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].hCenter - cPosition.hCenter) <= aMin) {
									cPosition.top = oPositions[idx].hCenter - cPosition.height / 2;
									removeHorLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].bottom - cPosition.hCenter) <= aMin) {
									cPosition.top = oPositions[idx].bottom - cPosition.height / 2;
									removeHorLine(oPositions[idx]);
								}
								// 元素底边线
								if (Math.abs(oPositions[idx].top - cPosition.bottom) <= aMin) {
									cPosition.top = oPositions[idx].top - cPosition.height;
									removeHorLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].hCenter - cPosition.bottom) <= aMin) {
									cPosition.top = oPositions[idx].hCenter - cPosition.height;
									removeHorLine(oPositions[idx]);
								} else if (Math.abs(oPositions[idx].bottom - cPosition.bottom) <= aMin) {
									cPosition.top = oPositions[idx].bottom - cPosition.height;
									removeHorLine(oPositions[idx]);
								}

								if (showAline) {
									if (
										Math.abs(oPositions[idx].left - cPosition.left) > aMin &&
										Math.abs(oPositions[idx].left - cPosition.left) <= aLMin
									) {
										// 左
										createVerLine(oPositions[idx], cPosition, "left", "left", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].vCenter - cPosition.left) > aMin &&
										Math.abs(oPositions[idx].vCenter - cPosition.left) <= aLMin
									) {
										createVerLine(oPositions[idx], cPosition, "vCenter", "left", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].right - cPosition.left) > aMin &&
										Math.abs(oPositions[idx].right - cPosition.left) <= aLMin
									) {
										createVerLine(oPositions[idx], cPosition, "right", "left", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].left - cPosition.vCenter) > aMin &&
										Math.abs(oPositions[idx].left - cPosition.vCenter) <= aLMin
									) {
										// 中
										createVerLine(oPositions[idx], cPosition, "left", "vCenter", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].vCenter - cPosition.vCenter) > aMin &&
										Math.abs(oPositions[idx].vCenter - cPosition.vCenter) <= aLMin
									) {
										createVerLine(oPositions[idx], cPosition, "vCenter", "vCenter", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].right - cPosition.vCenter) > aMin &&
										Math.abs(oPositions[idx].right - cPosition.vCenter) <= aLMin
									) {
										createVerLine(oPositions[idx], cPosition, "right", "vCenter", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].left - cPosition.right) > aMin &&
										Math.abs(oPositions[idx].left - cPosition.right) <= aLMin
									) {
										// 右
										createVerLine(oPositions[idx], cPosition, "left", "right", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].vCenter - cPosition.right) > aMin &&
										Math.abs(oPositions[idx].vCenter - cPosition.right) <= aLMin
									) {
										createVerLine(oPositions[idx], cPosition, "vCenter", "right", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].right - cPosition.right) > aMin &&
										Math.abs(oPositions[idx].right - cPosition.right) <= aLMin
									) {
										createVerLine(oPositions[idx], cPosition, "right", "right", paperH, paperContent);
									} else if (
										Math.abs(oPositions[idx].top - cPosition.top) > aMin &&
										Math.abs(oPositions[idx].top - cPosition.top) <= aLMin
									) {
										// 上
										createHorLine(oPositions[idx], cPosition, "top", "top", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].hCenter - cPosition.top) > aMin &&
										Math.abs(oPositions[idx].hCenter - cPosition.top) <= aLMin
									) {
										createHorLine(oPositions[idx], cPosition, "hCenter", "top", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].bottom - cPosition.top) > aMin &&
										Math.abs(oPositions[idx].bottom - cPosition.top) <= aLMin
									) {
										createHorLine(oPositions[idx], cPosition, "bottom", "top", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].top - cPosition.hCenter) > aMin &&
										Math.abs(oPositions[idx].top - cPosition.hCenter) <= aLMin
									) {
										// 中
										createHorLine(oPositions[idx], cPosition, "top", "hCenter", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].hCenter - cPosition.hCenter) > aMin &&
										Math.abs(oPositions[idx].hCenter - cPosition.hCenter) <= aLMin
									) {
										createHorLine(oPositions[idx], cPosition, "hCenter", "hCenter", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].bottom - cPosition.hCenter) > aMin &&
										Math.abs(oPositions[idx].bottom - cPosition.hCenter) <= aLMin
									) {
										createHorLine(oPositions[idx], cPosition, "bottom", "hCenter", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].top - cPosition.bottom) > aMin &&
										Math.abs(oPositions[idx].top - cPosition.bottom) <= aLMin
									) {
										// 下
										createHorLine(oPositions[idx], cPosition, "top", "bottom", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].hCenter - cPosition.bottom) > aMin &&
										Math.abs(oPositions[idx].hCenter - cPosition.bottom) <= aLMin
									) {
										createHorLine(oPositions[idx], cPosition, "hCenter", "bottom", paperW, paperContent);
									} else if (
										Math.abs(oPositions[idx].bottom - cPosition.bottom) > aMin &&
										Math.abs(oPositions[idx].bottom - cPosition.bottom) <= aLMin
									) {
										createHorLine(oPositions[idx], cPosition, "bottom", "bottom", paperW, paperContent);
									} else {
										removeVerLine(oPositions[idx]);
										removeHorLine(oPositions[idx]);
									}
								}
							});
						})();
						i.data.left = window.hinnn.pt.toPx(cPosition.left);
						i.data.top = window.hinnn.pt.toPx(cPosition.top);
					}
					// 当前纸张宽高
					var parent = data.parent.className.endsWith("design") ? data.parent : data.parent.offsetParent;
					var paperW = parent.clientWidth,
						paperH = parent.clientHeight;
					// 当前元素宽高
					var elementW = data.target.clientWidth,
						elementH = data.target.clientHeight,
						diffLeft = 0,
						diffTop = 0;
					if (o.options.designTarget && o.options.designTarget.options.transform) {
						var info = o.options.designTarget.options.getRectInfo();
						(diffLeft = window.hinnn.pt.toPx(info.diffW)), (diffTop = window.hinnn.pt.toPx(info.diffH));
					}
					// 左右
					if (data.left < 0 - diffLeft) {
						data.left = 0 - diffLeft;
					} else if (data.left >= paperW - elementW + diffLeft) {
						data.left = paperW - elementW + diffLeft;
					}
					// 上下
					if (data.top < 0 - diffTop) {
						data.top = 0 - diffTop;
					} else if (data.top >= paperH - elementH + diffTop) {
						data.top = paperH - elementH + diffTop;
					}
					i.data = data;
				}
				0 !=
					o.options.onDrag.call(
						i.data.target,
						i,
						t.fn.dragLengthCNum(i.data.left, o.options),
						t.fn.dragLengthCNum(i.data.top, o.options),
					) && n(i);
				var r = i.data.target;
				return (
					o.hidroppables.each(function () {
						var e = t(this);

						if (!e.hidroppable("options").disabled) {
							var n = e.offset();
							i.pageX > n.left &&
							i.pageX < n.left + e.outerWidth() &&
							i.pageY > n.top &&
							i.pageY < n.top + e.outerHeight()
								? (this.entered || (t(this).trigger("_dragenter", [r]), (this.entered = !0)),
									t(this).trigger("_dragover", [r]))
								: this.entered && (t(this).trigger("_dragleave", [r]), (this.entered = !1));
						}
					}),
					!1
				);
			}

			function r(e) {
				// 这里原 mouseup时, 回调了 o(e) ==> onDrag
				t.fn.hidraggable.isDragging = !1;
				removeVerLine(), removeHorLine();
				var n,
					i,
					r = t.data(e.data.target, "hidraggable"),
					a = r.proxy,
					p = r.options;
				p.revert
					? 1 == l()
						? t(e.data.target).css({
								position: e.data.startPosition,
								left: e.data.startLeft,
								top: e.data.startTop,
							})
						: a
							? (a.parent()[0] == document.body
									? ((n = e.data.startX - e.data.offsetWidth), (i = e.data.startY - e.data.offsetHeight))
									: ((n = e.data.startLeft), (i = e.data.startTop)),
								a.animate(
									{
										left: n,
										top: i,
									},
									function () {
										s();
									},
								))
							: t(e.data.target).animate(
									{
										left: e.data.startLeft,
										top: e.data.startTop,
									},
									function () {
										t(e.data.target).css("position", e.data.startPosition);
									},
								)
					: (t(e.data.target).css({
							position: "absolute",
							left: t.fn.dragLengthC(e.data.left, p),
							top: t.fn.dragLengthC(e.data.top, p),
						}),
						l());

				function s() {
					a && a.remove(), (r.proxy = null);
				}

				function l() {
					var n = !1;
					return (
						r.hidroppables.each(function () {
							var i = t(this);

							if (!i.hidroppable("options").disabled) {
								var o = i.offset();
								var ptr = (this.style.transform && parseFloat(this.style.transform.slice(6, -1))) || 1;
								return e.pageX > o.left &&
									e.pageX < o.left + i.outerWidth() * ptr &&
									e.pageY > o.top &&
									e.pageY < o.top + i.outerHeight() * ptr
									? (p.revert &&
											t(e.data.target).css({
												position: e.data.startPosition,
												left: e.data.startLeft,
												top: e.data.startTop,
											}),
										t(this).trigger("_drop", [e.data.target]),
										s(),
										(n = !0),
										(this.entered = !1),
										!1)
									: void 0;
							}
						}),
						n || p.revert || s(),
						n
					);
				}

				return (
					p.onStopDrag.call(e.data.target, e),
					t(document).unbind(".hidraggable"),
					setTimeout(function () {
						t("body").css("cursor", "");
					}, 100),
					!1
				);
			}

			(t.fn.hidraggable = function (e, n) {
				return "string" == typeof e
					? t.fn.hidraggable.methods[e](this, n)
					: this.each(function () {
							var n,
								a = t.data(this, "hidraggable");
							a
								? (a.handle.unbind(".hidraggable"), (n = t.extend(a.options, e)))
								: (n = t.extend({}, t.fn.hidraggable.defaults, t.fn.hidraggable.parseOptions(this), e || {}));
							var p = n.handle ? ("string" == typeof n.handle ? t(n.handle, this) : n.handle) : t(this);

							function s(e) {
								var n = t.data(e.data.target, "hidraggable"),
									i = n.handle,
									o = t(i).offset(),
									tr = t(i)[0].style.transform && parseInt(t(i)[0].style.transform.slice(7, -1)),
									ptr = n.options.getScale(),
									r = t(i).outerWidth();
								var a = t(i).outerHeight();
								if (tr) {
									var rad = (tr * Math.PI) / 180,
										width = t(i).outerWidth(),
										height = t(i).outerHeight(),
										sin = Math.sin(rad),
										cos = Math.cos(rad);
									(r = Math.abs(width * cos) + Math.abs(height * sin)),
										(a = Math.abs(width * sin) + Math.abs(height * cos));
								}
								if (ptr) {
									(r *= ptr), (a *= ptr);
								}
								var p = e.pageY - o.top,
									s = o.left + r - e.pageX,
									l = o.top + a - e.pageY,
									u = e.pageX - o.left;
								return Math.min(p, s, l, u) > n.options.edge;
							}

							t.data(this, "hidraggable", {
								options: n,
								handle: p,
							}),
								n.disabled
									? t(this).css("cursor", "")
									: p
											.unbind(".hidraggable")
											.bind(
												"mousemove.hidraggable",
												{
													target: this,
												},
												function (e) {
													if (!t.fn.hidraggable.isDragging) {
														var n = t.data(e.data.target, "hidraggable").options;
														s(e) ? t(this).css("cursor", n.cursor) : t(this).css("cursor", "");
													}
												},
											)
											.bind(
												"mouseleave.hidraggable",
												{
													target: this,
												},
												function (e) {
													t(this).css("cursor", "");
												},
											)
											.bind(
												"mousedown.hidraggable",
												{
													target: this,
												},
												function (e) {
													if (0 != s(e)) {
														t(this).css("cursor", "");
														var n = t(e.data.target).position(),
															a = t(e.data.target).offset(),
															p = {
																startPosition: t(e.data.target).css("position"),
																startLeft: n.left,
																startTop: n.top,
																left: n.left,
																top: n.top,
																startX: e.pageX,
																startY: e.pageY,
																offsetWidth: e.pageX - a.left,
																offsetHeight: e.pageY - a.top,
																target: e.data.target,
																parent: t(e.data.target).parent()[0],
															};
														var ops = t.data(e.data.target, "hidraggable");
														// item禁止移动
														if (ops.options.draggable === false) {
															return;
														}
														// 旋转时不允许移动
														if ("r resizebtn" == e.target.className) {
															return;
														}
														var ptr = ops.options.getScale();
														if (ptr) {
															(p.left /= ptr), (p.top /= ptr), (p.startLeft /= ptr), (p.startTop /= ptr);
														}
														var tr = p.target.style.transform && parseInt(p.target.style.transform.slice(7, -1));
														if (tr) {
															var rad = (tr * Math.PI) / 180,
																width = t(e.data.target).outerWidth(),
																height = t(e.data.target).outerHeight(),
																sin = Math.sin(rad),
																cos = Math.cos(rad);
															var w = Math.abs(width * cos) + Math.abs(height * sin),
																h = Math.abs(width * sin) + Math.abs(height * cos);
															var diffW = (w - width) / 2,
																diffH = (h - height) / 2;
															(p.left += diffW), (p.top += diffH), (p.startLeft += diffW), (p.startTop += diffH);
														}
														t.extend(e.data, p);
														0 != t.data(e.data.target, "hidraggable").options.onBeforeDrag.call(e.data.target, e) &&
															(t(document).bind("mousedown.hidraggable", e.data, i),
															t(document).bind("mousemove.hidraggable", e.data, o),
															t(document).bind("mouseup.hidraggable", e.data, r));
													}
												},
											);
						});
			}),
				(t.fn.hidraggable.methods = {
					options: function options(e) {
						return t.data(e[0], "hidraggable").options;
					},
					update: function update(e, n) {
						if (n && "object" == typeof n) {
							t.data(e[0], "hidraggable") &&
								Object.keys(n).forEach(function (k) {
									t.data(e[0], "hidraggable").options[k] = n[k];
								});
						}
					},
					proxy: function proxy(e) {
						return t.data(e[0], "hidraggable").proxy;
					},
					enable: function enable(e) {
						return e.each(function () {
							t(this).hidraggable({
								disabled: !1,
							});
						});
					},
					disable: function disable(e) {
						return e.each(function () {
							t(this).hidraggable({
								disabled: !0,
							});
						});
					},
				}),
				(t.fn.hidraggable.parseOptions = function (e) {
					var n = t(e);
					return t.extend(
						{},
						t.hiprintparser.parseOptions(e, [
							"cursor",
							"handle",
							"axis",
							{
								revert: "boolean",
								deltaX: "number",
								deltaY: "number",
								edge: "number",
							},
						]),
						{
							disabled: !!n.attr("disabled") || void 0,
						},
					);
				}),
				(t.fn.hidraggable.defaults = {
					proxy: null,
					revert: !1,
					cursor: "move",
					deltaX: null,
					deltaY: null,
					handle: null,
					disabled: !1,
					edge: 0,
					axis: null,
					getScale: function getScale(t) {},
					onBeforeDrag: function onBeforeDrag(t) {},
					onStartDrag: function onStartDrag(t) {},
					onDrag: function onDrag(t) {},
					onStopDrag: function onStopDrag(t) {},
				}),
				(t.fn.hidraggable.isDragging = !1);
		})(jQuery);
	},
	function (t, e) {
		!(function (t) {
			(t.fn.hidroppable = function (e, n) {
				return "string" == typeof e
					? t.fn.hidroppable.methods[e](this, n)
					: ((e = e || {}),
						this.each(function () {
							var n,
								i = t.data(this, "hidroppable");
							i
								? t.extend(i.options, e)
								: (t((n = this)).addClass("hidroppable"),
									t(n).bind("_dragenter", function (e, i) {
										t.data(n, "hidroppable").options.onDragEnter.apply(n, [e, i]);
									}),
									t(n).bind("_dragleave", function (e, i) {
										t.data(n, "hidroppable").options.onDragLeave.apply(n, [e, i]);
									}),
									t(n).bind("_dragover", function (e, i) {
										t.data(n, "hidroppable").options.onDragOver.apply(n, [e, i]);
									}),
									t(n).bind("_drop", function (e, i) {
										t.data(n, "hidroppable").options.onDrop.apply(n, [e, i]);
									}),
									t.data(this, "hidroppable", {
										options: t.extend({}, t.fn.hidroppable.defaults, t.fn.hidroppable.parseOptions(this), e),
									}));
						}));
			}),
				(t.fn.hidroppable.methods = {
					options: function options(e) {
						return t.data(e[0], "hidroppable").options;
					},
					enable: function enable(e) {
						return e.each(function () {
							t(this).hidroppable({
								disabled: !1,
							});
						});
					},
					disable: function disable(e) {
						return e.each(function () {
							t(this).hidroppable({
								disabled: !0,
							});
						});
					},
				}),
				(t.fn.hidroppable.parseOptions = function (e) {
					var n = t(e);
					return t.extend({}, t.hiprintparser.parseOptions(e, ["accept"]), {
						disabled: !!n.attr("disabled") || void 0,
					});
				}),
				(t.fn.hidroppable.defaults = {
					accept: null,
					disabled: !1,
					onDragEnter: function onDragEnter(t, e) {},
					onDragOver: function onDragOver(t, e) {},
					onDragLeave: function onDragLeave(t, e) {},
					onDrop: function onDrop(t, e) {},
				});
		})(jQuery);
	},
	function (t, e) {
		var n;
		((n = jQuery).hiprintparser = {
			parseOptions: function parseOptions(t, e) {
				var i = n(t),
					o = {},
					r = n.trim(i.attr("data-options"));

				if ((r && ("{" != r.substring(0, 1) && (r = "{" + r + "}"), (o = new Function("return " + r)())), e)) {
					for (var a = {}, p = 0; p < e.length; p++) {
						var s = e[p];
						if ("string" == typeof s)
							a[s] =
								"width" == s || "height" == s || "left" == s || "top" == s ? parseInt(t.style[s]) || void 0 : i.attr(s);
						else
							for (var l in s) {
								var u = s[l];
								"boolean" == u
									? (a[l] = i.attr(l) ? "true" == i.attr(l) : void 0)
									: "number" == u && (a[l] = "0" == i.attr(l) ? 0 : parseFloat(i.attr(l)) || void 0);
							}
					}

					n.extend(o, a);
				}

				return o;
			},
		}),
			(n.fn.dragLengthC = function (t, e) {
				return "pt" == e.moveUnit ? n.fn.dragLengthCNum(t, e) + "pt" : n.fn.dragLengthCNum(t, e);
			}),
			(n.fn.dragLengthCNum = function (t, e) {
				var n = 3;

				if ("pt" == e.moveUnit) {
					var i = 0.75 * t;
					return e.minMove && (n = e.minMove), Math.round(i / n) * n;
				}

				return Math.round(i / n) * n;
			});
	},
	function (t, e) {
		var n, i, o;
		(n = jQuery),
			(i = {
				maxPanelIndex: 0,
			}),
			((o = function o(t) {
				(this.options = n.data(t.target, "hireizeable").options), this.init(t.target);
			}).prototype = {
				numHandlerText: function numHandlerText(t) {
					return this.numHandler(t) + "pt";
				},
				numHandler: function numHandler(t) {
					var e = 1.5,
						n = 0.75 * t;
					return this.options.minResize && (e = this.options.minResize), Math.round(n / e) * e;
				},
				init: function init(t) {
					this.initResizeBox(t);
				},
				initResizeBox: function initResizeBox(t) {
					var e = this;
					n(t).each(function () {
						var o;
						(i.maxPanelIndex += 1),
							e.options.noContainer
								? (o = n(t))
								: (o = n("<div panelIndex=" + i.maxPanelIndex + ' class="resize-panel"></div>')).css({
										width: "100%",
										height: "100%",
										top: 0,
										left: 0,
										position: "absolute",
										"background-color": "rgba(0,0,0,0.5)",
										cursor: "move",
										display: "none",
									}),
							e.appendHandler(o, n(this));

						var r = {
								name: "n",
								target: n(
									'<div class="n resizebtn" style="cursor: n-resize;top: -12px;margin-left: -4px;left: 50%;"></div>',
								),
							},
							a = {
								name: "s",
								target: n(
									'<div class="s resizebtn" style="cursor: s-resize;bottom: -12px;margin-left: -4px;left: 50%;"></div>',
								),
							},
							p = {
								name: "w",
								target: n(
									'<div class="w resizebtn" style="cursor: w-resize;left: -12px;margin-top: -4px;top: 50%;"></div>',
								),
							},
							s = {
								name: "e",
								target: n(
									'<div class="e resizebtn" style="cursor: e-resize; top: 50%; margin-top:-4px;right: -12px;"></div>',
								),
							},
							l = {
								name: "ne",
								target: n('<div class="ne resizebtn" style="cursor: ne-resize;top: -12px;right: -12px;"></div>'),
							},
							u = {
								name: "nw",
								target: n('<div class="nw resizebtn" style=" cursor: nw-resize;top: -12px;left:-12px;"></div>'),
							},
							d = {
								name: "se",
								target: n('<div class="se resizebtn" style="cursor: se-resize;bottom:-12px;right: -12px;"></div>'),
							},
							c = {
								name: "sw",
								target: n('<div class="sw resizebtn" style="cursor: sw-resize;bottom: -12px;left: -12px;"></div>'),
							},
							r = {
								name: "r",
								target: n(
									'<div class="r resizebtn" style="cursor:url(\'\') 14 14,alias;top: -16px;margin-left: -4px;left: 50%;"></div>',
								),
							},
							sizeBox = n('<div class="size-box" style="position: absolute;left:-2px;"></div>'),
							deleteBtn = n('<div class="del-btn">✕</div>'),
							h = function h() {
								var t = [],
									i = e.options.showPoints;
								return (
									n.each([r, a, p, s, l, u, d, c], function (e, o) {
										n.inArray(o.name, i) > -1 && t.push(o.target);
									}),
									t
								);
							};
						e.refreshSizeBox(void 0, sizeBox, o);
						// draggable 为 false 时不显示 resizebox 右上角删除按钮
						if (e.options.draggable != false) {
							o.append(deleteBtn);
							o.on("mousedown", ".del-btn", () => {
								var keyboardEvent = new KeyboardEvent("keydown", { bubbles: true, keyCode: 46 });
								t.dispatchEvent(keyboardEvent);
							});
						}
						e.addHandlerCss(h()), e.appendHandler(h(), o), e.bindResizeEvent(o, n(this));
						var f = n(this);
						n(o).on("mousedown", ".resizebtn", function () {
							f.addClass("resizeing");
						}),
							n(".easyui-droppable").on("mouseup", function () {
								f.removeClass("resizeing");
							}),
							e.bindTrigger(n(this));
					}),
						e.bindHidePanel();
				},
				addHandlerCss: function addHandlerCss(t) {
					for (var e = 0; e < t.length; e++) {
						t[e].css({
							position: "absolute",
							width: "8px",
							height: "8px",
							background: "#ff6600",
							"border-radius": "50%",
						});
					}
				},
				appendHandler: function appendHandler(t, e) {
					e.find(".resize-panel").remove();
					for (var n = 0; n < t.length; n++) {
						e.append(t[n]);
					}
				},
				refreshSizeBox: function refreshSizeBox(t, box, o) {
					if (!this.options.showSizeBox) return;
					if (box) {
						o.append(box);
					}
					var style, sizeBox;
					if (t && t.length) {
						style = t[0].style;
						sizeBox = t.children("div[panelindex]").find(".size-box");
					} else if (o && o.parent()) {
						var t = o.parent();
						if (t.hasClass("hiprint-printPaper-content")) return;
						style = t[0].style;
						if (!style.width) {
							style.width = hinnn.px.toPt(t[0].offsetWidth) + "pt";
						}
						if (!style.height) {
							style.height = hinnn.px.toPt(t[0].offsetHeight) + "pt";
						}
						sizeBox = t.children("div[panelindex]").find(".size-box");
					}
					if (sizeBox) {
						sizeBox.text(style.width + " x " + style.height);
						sizeBox.css("top", -(sizeBox.outerHeight() || 20));
					}
				},
				triggerResize: function triggerResize(t, n) {
					// 处理按住 ctrl / command 点击元素 多选
					if (!(n.ctrlKey || n.metaKey)) {
						t.siblings().children("div[panelindex]").removeClass("selected");
						t.siblings().children("div[panelindex]").css({
							display: "none",
						});
					}
					t.children("div[panelindex]").addClass("selected");
					t.children("div[panelindex]").css({
						display: "block",
					});
					this.refreshSizeBox(t);
				},
				bindResizeEvent: function bindResizeEvent(t, e) {
					var i = this,
						o = 0,
						r = 0,
						a = t.width(),
						p = t.height(),
						s = t.offset().left,
						l = t.offset().top,
						u = i.options.noContainer ? n(e) : t.parent(),
						d = !1; // 右
					t.on("mousedown", ".e", function (e) {
						(o = e.pageX), (a = t.width()), (d = !0);
					});
					var c = !1; // 下
					t.on("mousedown", ".s", function (e) {
						(r = e.pageY), (p = t.height()), (c = !0);
					});
					var h = !1; // 左
					t.on("mousedown", ".w", function (e) {
						(o = e.pageX), (a = t.width()), (h = !0), (s = u.offset().left);
					});
					var f = !1; // 上
					t.on("mousedown", ".n", function (e) {
						(r = e.pageY), (p = t.height()), (f = !0), (l = u.offset().top);
					});
					var g = !1; // 右上
					t.on("mousedown", ".ne", function (e) {
						(o = e.pageX), (r = e.pageY), (a = t.width()), (p = t.height()), (g = !0), (l = u.offset().top);
					});
					var m = !1; // 左上
					t.on("mousedown", ".nw", function (e) {
						(o = e.pageX),
							(r = e.pageY),
							(a = t.width()),
							(p = t.height()),
							(l = u.offset().top),
							(s = u.offset().left),
							(m = !0);
					});
					var v = !1; // 右下
					t.on("mousedown", ".se", function (e) {
						(o = e.pageX), (r = e.pageY), (a = t.width()), (p = t.height()), (v = !0);
					});
					var y = !1; // 左下
					t.on("mousedown", ".sw", function (e) {
						(o = e.pageX), (r = e.pageY), (a = t.width()), (p = t.height()), (y = !0), (s = u.offset().left);
					});
					var rt = !1; // 旋转
					t.on("mousedown", ".r", function (e) {
						(o = e.pageX),
							(r = e.pageY),
							(a = t.width()),
							(p = t.height()),
							(rt = !0),
							(s = a / 2 + u.offset().left),
							(l = p / 2 + u.offset().top);
					});
					t.on("dblclick", ".r", function (e) {
						u.css({ transform: "rotate(" + 0 + "deg)" });
						i.options.onResize(e, void 0, void 0, void 0, void 0, 0);
					});
					var b = !1;
					t.on("mousedown", function (t) {
						i.options.onBeforeResize(),
							(o = t.pageX),
							(r = t.pageY),
							(l = u.offset().top),
							(s = u.offset().left),
							(b = !1);
					}),
						n(i.options.stage)
							.on("mousemove", function (e) {
								if (d) {
									// 右
									var n = (e.pageX - o) / i.options.getScale();
									t.css({
										width: "100%",
									}),
										u.css({
											width: i.numHandlerText(a + n),
										}),
										i.options.onResize(e, void 0, i.numHandler(a + n), void 0, void 0);
								} else if (c) {
									// 下
									var E = (e.pageY - r) / i.options.getScale();
									t.css({
										height: "100%",
									}),
										u.css({
											height: i.numHandlerText(p + E),
										}),
										i.options.onResize(e, i.numHandler(p + E), void 0, void 0, void 0);
								} else if (rt) {
									// 旋转
									t.css({ height: "100%" });
									var eo = e.pageX,
										er = e.pageY;
									var direct = ((eo - o) * 360) / 100;
									o = e.pageX;
									var lastAngle = (u[0].style.transform && parseInt(u[0].style.transform.slice(7, -1))) || 0;
									var R = lastAngle + direct;
									if (Math.abs(R) > 360) {
										R = R % 360;
									}
									u.css({ transform: "rotate(" + R + "deg)" });
									i.options.onResize(e, void 0, void 0, void 0, void 0, R);
								} else if (h) {
									// 左
									(n = (e.pageX - o) / i.options.getScale()),
										t.css({
											width: "100%",
										}),
										u.css({
											width: i.numHandlerText(a - n),
											left: i.numHandlerText(i.options.noDrag ? void 0 : i.numHandler(s + n)),
										}),
										i.options.onResize(
											e,
											void 0,
											i.numHandler(a - n),
											void 0,
											i.options.noDrag ? void 0 : i.numHandler(s + n),
										);
								} else if (f) {
									// 上
									(E = (e.pageY - r) / i.options.getScale()),
										t.css({
											height: "100%",
										}),
										u.css({
											height: i.numHandlerText(p - E),
											top: i.numHandlerText(i.options.noDrag ? void 0 : l + E),
										}),
										i.options.onResize(
											e,
											i.numHandler(p - E),
											void 0,
											i.options.noDrag ? void 0 : i.numHandler(l + E),
											void 0,
										);
								} else if (g) {
									// 右上
									(n = (e.pageX - o) / i.options.getScale()),
										(E = (e.pageY - r) / i.options.getScale()),
										t.css({
											height: "100%",
											width: "100%",
										}),
										u.css({
											height: i.numHandlerText(p - E),
											top: i.numHandlerText(i.options.noDrag ? void 0 : l + E),
											width: i.numHandlerText(a + n),
										}),
										i.options.onResize(
											e,
											i.numHandler(p - E),
											i.numHandler(a + n),
											i.options.noDrag ? void 0 : i.numHandler(l + E),
											void 0,
										);
								} else if (m) {
									// 左上
									(n = (e.pageX - o) / i.options.getScale()),
										(E = (e.pageY - r) / i.options.getScale()),
										t.css({
											height: "100%",
											width: "100%",
										}),
										u.css({
											height: i.numHandlerText(p - E),
											top: i.numHandlerText(i.options.noDrag ? void 0 : l + E),
											width: i.numHandlerText(a - n),
											left: i.numHandlerText(i.options.noDrag ? void 0 : s + n),
										}),
										i.options.onResize(
											e,
											i.numHandler(p - E),
											i.numHandler(a - n),
											i.options.noDrag ? void 0 : i.numHandler(l + E),
											i.options.noDrag ? void 0 : i.numHandler(s + n),
										);
								} else if (v) {
									// 右下
									(n = (e.pageX - o) / i.options.getScale()),
										(E = (e.pageY - r) / i.options.getScale()),
										t.css({ width: "100%", height: "100%" });
									if (e.shiftKey) {
										u.css({ width: i.numHandlerText(a + n), height: i.numHandlerText(p + E) });
										i.options.onResize(e, i.numHandler(p + E), i.numHandler(a + n), void 0, void 0);
									} else {
										// 宽高比
										var ratio = p / a;
										var width = a + n,
											height = p + E;
										height = width * ratio;
										u.css({ width: i.numHandlerText(width), height: i.numHandlerText(height) });
										i.options.onResize(e, i.numHandler(height), i.numHandler(width), void 0, void 0);
									}
								} else if (y) {
									// 左下
									(n = (e.pageX - o) / i.options.getScale()),
										(E = (e.pageY - r) / i.options.getScale()),
										t.css({
											width: "100%",
											height: "100%",
										}),
										u.css({
											width: i.numHandlerText(a - n),
											left: i.numHandlerText(i.options.noDrag ? void 0 : s + n),
											height: i.numHandlerText(p + E),
										}),
										i.options.onResize(
											e,
											i.numHandler(p + E),
											i.numHandler(a - n),
											i.numHandler(otundefinedop),
											i.options.noDrag ? void 0 : i.numHandler(s + n),
										);
								} else {
									// 按下
									b &&
										((n = (e.pageX - o) / i.options.getScale()),
										(E = (e.pageY - r) / i.options.getScale()),
										u.css({
											left: i.numHandlerText(i.options.noDrag ? void 0 : s + n),
											top: i.numHandlerText(i.options.noDrag ? void 0 : l + E),
										}),
										i.options.onResize(
											e,
											void 0,
											void 0,
											i.options.noDrag ? void 0 : i.numHandler(l + E),
											i.options.noDrag ? void 0 : i.numHandler(s + n),
										));
								}
							})
							.on("mouseup", function (t) {
								// i.options.onStopResize(rt);
								// 当某个 '控制点' 按下时 (每个'控制点'按下状态是独立的)
								if (d || c || h || f || g || m || y || v || b || rt) {
									i.options.onStopResize(rt);
								}
								(d = !1), (c = !1), (h = !1), (f = !1), (g = !1), (m = !1), (y = !1), (v = !1), (b = !1), (rt = !1);
							});
				},
				bindTrigger: function bindTrigger(t) {
					var e = this;
					t.on("click", function (_n) {
						_n.stopPropagation(), e.triggerResize(t, _n), n(".mouseRect").remove();
					});
				},
				bindHidePanel: function bindHidePanel(t) {
					if (i.maxPanelIndex < 2) {
						var e = this.options.stage;
						n(e).bind("click", function (t) {
							// 仅点击设计面板时清除多选元素
							if (
								t.target.className &&
								_typeof(t.target.className) == "string" &&
								t.target.className.includes("design")
							) {
								t.stopPropagation(),
									n("div[panelindex]").css({
										display: "none",
									});
								n("div[panelindex]").removeClass("selected");
							}
						});
					}
				},
			}),
			n.fn.extend({
				hireizeable: function hireizeable(t) {
					return this.each(function () {
						var e,
							i = n.data(this, "hireizeable");
						e = i ? n.extend({}, i.options, t || {}) : n.extend({}, n.fn.hireizeable.defaults, t || {});
						n.data(this, "hireizeable", {
							options: e,
						}),
							new o({
								target: this,
								onResize: function onResize(t, e, n, i, o) {},
								onStopResize: function onStopResize(t, e, n, i, o) {},
							});
					});
				},
			}),
			(n.fn.hireizeable.defaults = {
				stage: document,
				reizeUnit: "pt",
				minResize: 1.5,
				showSizeBox: !0,
				showPoints: ["s", "e"],
				noContainer: !1,
				onBeforeResize: function onBeforeResize(t, e, n, i, o) {},
				onResize: function onResize(t, e, n, i, o) {},
				onStopResize: function onStopResize(t, e, n, i, o) {},
				noDrag: !1,
			});
	},
	function (t, e) {
		var n, i;
		jQuery,
			(n = "connected"),
			(i = "reconnecting"),
			(window.hiwebSocket = {
				opened: !1,
				name: "webSockets",
				host: "http://localhost:17521",
				token: null,
				reconnectTimeout: 6e4,
				reconnectWindowSetTimeout: null,
				reconnectDelay: 2e3,
				supportsKeepAlive: function supportsKeepAlive() {
					return !0;
				},
				hasIo: function hasIo(t) {
					return window.io;
				},
				send: function send(t) {
					try {
						this.socket.emit("news", t);
					} catch (e) {
						console.log("send data error:" + (t || "") + JSON.stringify(e));
					}
				},
				getPrinterList: function getPrinterList() {
					return this.printerList;
				},
				refreshPrinterList: function refreshPrinterList() {
					try {
						this.socket.emit("refreshPrinterList");
					} catch (e) {
						console.log("refreshPrinterList error:" + JSON.stringify(e));
					}
				},
				getPaperSizeInfo: function getPaperSizeInfo(printer) {
					try {
						console.warn("getPaperSizeInfo 是一个测试功能，仅win客户端支持该api！");
						this.socket.emit("getPaperSizeInfo", printer);
					} catch (e) {
						console.log("getPaperSizeInfo error:" + JSON.stringify(e));
					}
				},
				getClients: function getClients() {
					try {
						this.socket.emit("getClients");
					} catch (e) {
						console.log("getClients error:" + JSON.stringify(e));
					}
				},
				getClientInfo: function getClientInfo() {
					try {
						this.socket.emit("getClientInfo");
					} catch (e) {
						console.log("getClientInfo error:" + JSON.stringify(e));
					}
				},
				getAddress: function getAddress(type, ...args) {
					try {
						this.socket.emit("address", type, ...args);
					} catch (e) {
						console.log("getAddress error:" + JSON.stringify(e));
					}
				},
				ippPrint: function ippPrint(options) {
					try {
						this.socket.emit("ippPrint", options);
					} catch (e) {
						console.log("ippPrint error:" + JSON.stringify(e));
					}
				},
				ippRequest: function ippRequest(options) {
					try {
						this.socket.emit("ippRequest", options);
					} catch (e) {
						console.log("ippRequest error:" + JSON.stringify(e));
					}
				},
				setHost: function (host, token, cb) {
					if (typeof token === "function") {
						cb = token;
						token = undefined;
					}
					this.host = host;
					this.token = token;
					this.stop();
					this.start(cb);
				},
				start: function start(cb) {
					var _this = this;

					var t = this;
					window.WebSocket
						? this.socket ||
							((this.socket = window.io(this.host, {
								transports: ["websocket"],
								reconnectionAttempts: 5,
								auth: {
									token: this.token,
								},
							})),
							this.socket.on("connect", function (e) {
								(t.opened = !0),
									console.log("Websocket opened."),
									_this.socket.on("successs", function (t) {
										hinnn.event.trigger("printSuccess_" + t.templateId, t);
									}),
									_this.socket.on("error", function (t) {
										hinnn.event.trigger("printError_" + t.templateId, t);
									}),
									_this.socket.on("clients", function (clients) {
										t.clients = clients;
										hinnn.event.trigger("clients", clients);
									}),
									_this.socket.on("clientInfo", function (clientInfo) {
										t.clientInfo = clientInfo;
										hinnn.event.trigger("clientInfo", clientInfo);
									}),
									_this.socket.on("printerList", function (e) {
										t.printerList = e;
										hinnn.event.trigger("printerList", e);
									}),
									_this.socket.on("paperSizeInfo", function (e) {
										t.paperSize = Array.isArray(e) ? e : [e];
										hinnn.event.trigger("paperSizeInfo", t.paperSize);
									}),
									_this.socket.on("address", function (type, addr, e) {
										hinnn.event.trigger("address_" + type, { addr: addr, e: e });
									}),
									_this.socket.on("ippPrinterConnected", function (printer) {
										hinnn.event.trigger("ippPrinterConnected", printer);
									}),
									_this.socket.on("ippPrinterCallback", function (err, res) {
										hinnn.event.trigger("ippPrinterCallback", { err: err, res: res });
									}),
									_this.socket.on("ippRequestCallback", function (err, res) {
										hinnn.event.trigger("ippRequestCallback", { err: err, res: res });
									}),
									(t.state = n);
								cb && cb(true, e);
							}),
							this.socket.on("connect_error", function (e) {
								console.error(e);
								hinnn.event.trigger("connect_error", e);
							}),
							this.socket.on("disconnect", function () {
								t.opened = !1;
								cb && cb(false);
							}))
						: console.log("WebSocket start fail"),
						cb && cb(false);
				},
				reconnect: function reconnect() {
					(this.state !== n && this.state !== i) ||
						(this.stop(), this.ensureReconnectingState() && (console.log("Websocket reconnecting."), this.start()));
				},
				stop: function stop() {
					this.socket &&
						(console.log("Closing the Websocket."), this.socket.close(), (this.socket = null), (this.printerList = []));
				},
				ensureReconnectingState: function ensureReconnectingState() {
					return (this.state = i), this.state === i;
				},
			});
	},
	function (t, e, n) {
		var i = n(28);
		"string" == typeof i && (i = [[t.i, i, ""]]);
		var o = {
			hmr: !0,
			transform: void 0,
			insertInto: void 0,
		};
		n(30)(i, o);
		i.locals && (t.exports = i.locals);
	},
	function (t, e, n) {
		(t.exports = n(29)(!1)).push([
			t.i,
			".hicontextmenu {\r\n\tposition: absolute;\r\n\tdisplay: inline-block;\r\n\twidth: 215px;\r\n\tpadding: 0 0;\r\n\tmargin: 0;\r\n\tfont-family: inherit;\r\n\tfont-size: inherit;\r\n\tlist-style-type: none;\r\n\tlist-style: none;\r\n\tbackground: #fff;\r\n\tborder: 1px solid #bebebe;\r\n\tborder-radius: 2px;\r\n\tfont-size: 13px;\r\n}\r\n\r\n.hicontextmenuroot .hicontextmenuitem {\r\n\tposition: relative;\r\n\t-webkit-box-sizing: content-box;\r\n\t-moz-box-sizing: content-box;\r\n\tbox-sizing: content-box;\r\n\tpadding: .2em 12px;\r\n\tcolor: #2f2f2f;\r\n\t-webkit-user-select: none;\r\n\t-moz-user-select: none;\r\n\t-ms-user-select: none;\r\n\ttext-decoration: none;\r\n\r\n\tuser-select: none;\r\n\tbackground-color: #fff;\r\n\r\n}\r\n\r\n.hicontextmenuroot>.hicontextmenuitem:hover,\r\n.hicontextmenuroot .hicontextmenuitem > a:hover {\r\n\tbackground-color: #f3f3f3;\r\n}\r\n\r\n.hicontextmenuroot .hicontextmenuitem>a {\r\n\ttext-decoration: none;\r\n\tcolor: #363636;\r\n\tline-height: 22px;\r\n\r\n}\r\n\r\n.hicontextmenuroot .hicontextsubmenu>ul {\r\n\tdisplay: none;\r\n\tposition: absolute;\r\n\r\n}\r\n\r\n.hicontextmenuroot .hicontextsubmenu:hover>ul {\r\n\tdisplay: block;\r\n\tleft: 100%;\r\n\ttop: -1px;\r\n\tmargin-left: 0px;\r\n}\r\n\r\n.hicontextmenuroot .borderBottom {\r\n\tborder-bottom: 1px solid #efe6e6;\r\n}\r\n\r\n.hicontextmenuroot .disable> a {\r\n  \r\n    color: #ccc;\r\n   \r\n}\r\n.hicontextmenuroot>.disable:hover,\r\n.hicontextmenuroot .disable> a:hover {\r\n\tbackground-color:#fff;\r\n}",
			"",
		]);
	},
	function (t, e, n) {
		"use strict";

		t.exports = function (t) {
			var e = [];
			return (
				(e.toString = function () {
					return this.map(function (e) {
						var n = (function (t, e) {
							var n = t[1] || "",
								i = t[3];
							if (!i) return n;

							if (e && "function" == typeof btoa) {
								var o =
										((a = i),
										"/*# sourceMappingURL=data:application/json;charset=utf-8;base64," +
											btoa(unescape(encodeURIComponent(JSON.stringify(a)))) +
											" */"),
									r = i.sources.map(function (t) {
										return "/*# sourceURL=" + i.sourceRoot + t + " */";
									});
								return [n].concat(r).concat([o]).join("\n");
							}

							var a;
							return [n].join("\n");
						})(e, t);

						return e[2] ? "@media " + e[2] + "{" + n + "}" : n;
					}).join("");
				}),
				(e.i = function (t, n) {
					"string" == typeof t && (t = [[null, t, ""]]);

					for (var i = {}, o = 0; o < this.length; o++) {
						var r = this[o][0];
						null != r && (i[r] = !0);
					}

					for (o = 0; o < t.length; o++) {
						var a = t[o];
						(null != a[0] && i[a[0]]) ||
							(n && !a[2] ? (a[2] = n) : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), e.push(a));
					}
				}),
				e
			);
		};
	},
	function (t, e, n) {
		var i,
			o,
			r = {},
			a =
				((i = function i() {
					return window && document && document.all && !window.atob;
				}),
				function () {
					return void 0 === o && (o = i.apply(this, arguments)), o;
				}),
			p = (function (t) {
				var e = {};
				return function (t, n) {
					if ("function" == typeof t) return t();

					if (void 0 === e[t]) {
						var i = function (t, e) {
							return e ? e.querySelector(t) : document.querySelector(t);
						}.call(this, t, n);

						if (window.HTMLIFrameElement && _instanceof(i, window.HTMLIFrameElement))
							try {
								i = i.contentDocument.head;
							} catch (t) {
								i = null;
							}
						e[t] = i;
					}

					return e[t];
				};
			})(),
			s = null,
			l = 0,
			u = [],
			d = n(31);

		function c(t, e) {
			for (var n = 0; n < t.length; n++) {
				var i = t[n],
					o = r[i.id];

				if (o) {
					o.refs++;

					for (var a = 0; a < o.parts.length; a++) {
						o.parts[a](i.parts[a]);
					}

					for (; a < i.parts.length; a++) {
						o.parts.push(y(i.parts[a], e));
					}
				} else {
					var p = [];

					for (a = 0; a < i.parts.length; a++) {
						p.push(y(i.parts[a], e));
					}

					r[i.id] = {
						id: i.id,
						refs: 1,
						parts: p,
					};
				}
			}
		}

		function h(t, e) {
			for (var n = [], i = {}, o = 0; o < t.length; o++) {
				var r = t[o],
					a = e.base ? r[0] + e.base : r[0],
					p = {
						css: r[1],
						media: r[2],
						sourceMap: r[3],
					};
				i[a]
					? i[a].parts.push(p)
					: n.push(
							(i[a] = {
								id: a,
								parts: [p],
							}),
						);
			}

			return n;
		}

		function f(t, e) {
			var n = p(t.insertInto);
			if (!n)
				throw new Error(
					"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.",
				);
			var i = u[u.length - 1];
			if ("top" === t.insertAt)
				i ? (i.nextSibling ? n.insertBefore(e, i.nextSibling) : n.appendChild(e)) : n.insertBefore(e, n.firstChild),
					u.push(e);
			else if ("bottom" === t.insertAt) n.appendChild(e);
			else {
				if ("object" != _typeof(t.insertAt) || !t.insertAt.before)
					throw new Error(
						"[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n",
					);
				var o = p(t.insertAt.before, n);
				n.insertBefore(e, o);
			}
		}

		function g(t) {
			if (null === t.parentNode) return !1;
			t.parentNode.removeChild(t);
			var e = u.indexOf(t);
			e >= 0 && u.splice(e, 1);
		}

		function m(t) {
			var e = document.createElement("style");

			if ((void 0 === t.attrs.type && (t.attrs.type = "text/css"), void 0 === t.attrs.nonce)) {
				var i = (function () {
					0;
					return n.nc;
				})();

				i && (t.attrs.nonce = i);
			}

			return v(e, t.attrs), f(t, e), e;
		}

		function v(t, e) {
			Object.keys(e).forEach(function (n) {
				t.setAttribute(n, e[n]);
			});
		}

		function y(t, e) {
			var n, i, o, r;

			if (e.transform && t.css) {
				if (!(r = "function" == typeof e.transform ? e.transform(t.css) : e.transform.default(t.css)))
					return function () {};
				t.css = r;
			}

			if (e.singleton) {
				var a = l++;
				(n = s || (s = m(e))), (i = T.bind(null, n, a, !1)), (o = T.bind(null, n, a, !0));
			} else
				t.sourceMap &&
				"function" == typeof URL &&
				"function" == typeof URL.createObjectURL &&
				"function" == typeof URL.revokeObjectURL &&
				"function" == typeof Blob &&
				"function" == typeof btoa
					? ((n = (function (t) {
							var e = document.createElement("link");
							return (
								void 0 === t.attrs.type && (t.attrs.type = "text/css"),
								(t.attrs.rel = "stylesheet"),
								v(e, t.attrs),
								f(t, e),
								e
							);
						})(e)),
						(i = function (t, e, n) {
							var i = n.css,
								o = n.sourceMap,
								r = void 0 === e.convertToAbsoluteUrls && o;
							(e.convertToAbsoluteUrls || r) && (i = d(i));
							o &&
								(i +=
									"\n/*# sourceMappingURL=data:application/json;base64," +
									btoa(unescape(encodeURIComponent(JSON.stringify(o)))) +
									" */");
							var a = new Blob([i], {
									type: "text/css",
								}),
								p = t.href;
							(t.href = URL.createObjectURL(a)), p && URL.revokeObjectURL(p);
						}.bind(null, n, e)),
						(o = function o() {
							g(n), n.href && URL.revokeObjectURL(n.href);
						}))
					: ((n = m(e)),
						(i = function (t, e) {
							var n = e.css,
								i = e.media;
							i && t.setAttribute("media", i);
							if (t.styleSheet) t.styleSheet.cssText = n;
							else {
								for (; t.firstChild; ) {
									t.removeChild(t.firstChild);
								}

								t.appendChild(document.createTextNode(n));
							}
						}.bind(null, n)),
						(o = function o() {
							g(n);
						}));

			return (
				i(t),
				function (e) {
					if (e) {
						if (e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap) return;
						i((t = e));
					} else o();
				}
			);
		}

		t.exports = function (t, e) {
			if (
				"undefined" != typeof DEBUG &&
				DEBUG &&
				"object" != (typeof document === "undefined" ? "undefined" : _typeof(document))
			)
				throw new Error("The style-loader cannot be used in a non-browser environment");
			((e = e || {}).attrs = "object" == _typeof(e.attrs) ? e.attrs : {}),
				e.singleton || "boolean" == typeof e.singleton || (e.singleton = a()),
				e.insertInto || (e.insertInto = "head"),
				e.insertAt || (e.insertAt = "bottom");
			var n = h(t, e);
			return (
				c(n, e),
				function (t) {
					for (var i = [], o = 0; o < n.length; o++) {
						var a = n[o];
						(p = r[a.id]).refs--, i.push(p);
					}

					t && c(h(t, e), e);

					for (o = 0; o < i.length; o++) {
						var p;

						if (0 === (p = i[o]).refs) {
							for (var s = 0; s < p.parts.length; s++) {
								p.parts[s]();
							}

							delete r[p.id];
						}
					}
				}
			);
		};

		var b,
			E =
				((b = []),
				function (t, e) {
					return (b[t] = e), b.filter(Boolean).join("\n");
				});

		function T(t, e, n, i) {
			var o = n ? "" : i.css;
			if (t.styleSheet) t.styleSheet.cssText = E(e, o);
			else {
				var r = document.createTextNode(o),
					a = t.childNodes;
				a[e] && t.removeChild(a[e]), a.length ? t.insertBefore(r, a[e]) : t.appendChild(r);
			}
		}
	},
	function (t, e) {
		t.exports = function (t) {
			var e = "undefined" != typeof window && window.location;
			if (!e) throw new Error("fixUrls requires window.location");
			if (!t || "string" != typeof t) return t;
			var n = e.protocol + "//" + e.host,
				i = n + e.pathname.replace(/\/[^\/]*$/, "/");
			return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function (t, e) {
				var o,
					r = e
						.trim()
						.replace(/^"(.*)"$/, function (t, e) {
							return e;
						})
						.replace(/^'(.*)'$/, function (t, e) {
							return e;
						});
				return /^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(r)
					? t
					: ((o = 0 === r.indexOf("//") ? r : 0 === r.indexOf("/") ? n + r : i + r.replace(/^\.\//, "")),
						"url(" + JSON.stringify(o) + ")");
			});
		};
	},
	function (t, e) {
		var n, i;
		window,
			document,
			(n = jQuery),
			((i = function i(t, e) {
				this.init(t, e);
			}).prototype = {
				init: function init(t, e) {
					(this.ele = t),
						(this.defaults = {
							menu: [
								{
									text: "text",
									menus: [{}, {}],
									callback: function callback() {},
								},
							],
							target: function target(t) {},
							width: 100,
							itemHeight: 28,
							bgColor: "#fff",
							color: "#333",
							fontSize: 14,
							hoverBgColor: "#f5f5f5",
						}),
						(this.opts = n.extend(!0, {}, this.defaults, e)),
						(this.random = new Date().getTime() + parseInt(1e3 * Math.random())),
						this.eventBind();
				},
				renderMenu: function renderMenu(t, e) {
					var n = this,
						i = e;

					if (t && t.length) {
						var o = $('<ul class="hicontextmenu" style="z-index: 9999;"></ul>');
						i || (i = o).addClass("hicontextmenuroot"),
							$.each(t, function (t, e) {
								var i = !!e.disable && e.disable(),
									r = $(
										'<li class="hicontextmenuitem"><a href="javascript:void(0);"><span>' +
											(e.text || "") +
											"</span></a></li>",
									);
								i && r.addClass("disable"),
									e.borderBottom && r.addClass("borderBottom"),
									e.menus && (r.addClass("hicontextsubmenu"), n.renderMenu(e.menus, r)),
									e.callback &&
										r.click(function (t) {
											$(this).hasClass("disable")
												? t.stopPropagation()
												: ($(".hicontextmenuroot").remove(), e.callback(), t.stopPropagation());
										}),
									o.append(r);
							}),
							e && e.append(o);
					}

					e || $("body").append(i).find(".hicontextmenuroot").hide();
				},
				setPosition: function setPosition(t) {
					$(".hicontextmenuroot")
						.css({
							left: t.pageX + 2,
							top: t.pageY + 2,
						})
						.show();
				},
				eventBind: function eventBind() {
					var t = this;
					this.ele.on("contextmenu", function (e) {
						$(".hicontextmenuroot").remove(),
							e.preventDefault(),
							t.renderMenu(t.opts.menus),
							t.setPosition(e),
							t.opts.target && "function" == typeof t.opts.target && t.opts.target(n(this));
					}),
						n("body").on("click", function () {
							n(".hicontextmenuroot").remove();
						});
				},
			}),
			(n.fn.hicontextMenu = function (t) {
				return new i(this, t), this;
			});
	},
	function (t, e, n) {
		"use strict";

		n.r(e);
		n(22), n(23), n(24), n(25);
		var i,
			o = n(0);
		n(26);
		window.hiLocalStorage =
			((i = window.localStorage || null),
			{
				saveLocalData: function saveLocalData(t, e) {
					return !(!i || !e || (i.setItem(t, e), 0));
				},
				getLocalData: function getLocalData(t) {
					return i ? i.getItem(t) : null;
				},
				removeItem: function removeItem(t) {
					i && i.removeItem(t);
				},
			});
		n(27), n(32);

		var _r,
			a = (function () {
				function t() {
					this.allElementTypes = [];
				}

				return (
					Object.defineProperty(t, "instance", {
						get: function get() {
							return t._instance || (t._instance = new t()), t._instance;
						},
						enumerable: !0,
						configurable: !0,
					}),
					(t.prototype.addPrintElementTypes = function (t, e) {
						var n = this;
						this[t] ? (this[t] = this[t].concat(e)) : (this[t] = e),
							e.forEach(function (t) {
								n.allElementTypes = n.allElementTypes.concat(t.printElementTypes);
							});
					}),
					(t.prototype.removePrintElementTypes = function (t) {
						var n = this;
						delete n[t],
							(n.allElementTypes = n.allElementTypes.filter(function (e) {
								return !e.tid.startsWith(t);
							}));
					}),
					(t.prototype.getElementTypeGroups = function (t) {
						return this[this.formatterModule(t)] || [];
					}),
					(t.prototype.getElementType = function (t) {
						var e = this.allElementTypes.filter(function (e) {
							return e.tid == t;
						});
						if (e.length > 0) return e[0];
					}),
					(t.prototype.updateElementType = function (t, c) {
						var type = this.getElementType(t);
						if (c) {
							var newType = c(type);
							var idx = this.allElementTypes.findIndex(function (e) {
								return e.tid == t;
							});
							if (idx >= 0) {
								this.allElementTypes.splice(idx, 1, newType);
								return newType;
							}
						}
						return type;
					}),
					(t.prototype.formatterModule = function (t) {
						return t || "_default";
					}),
					t
				);
			})(),
			p = n(1),
			s = n(2),
			l = (function () {
				function t() {}

				return (
					(t.prototype.createPrintElementTypeHtml = function (t, e) {
						var n = $('<ul class="hiprint-printElement-type"></ul>');
						return (
							e.forEach(function (t) {
								var e = $("<li></li>");
								e.append('<span class="title">' + t.name + "</span>");
								var i = $("<ul></ul>");
								e.append(i),
									t.printElementTypes.forEach(function (t) {
										i.append('<li><a class="ep-draggable-item" tid="' + t.tid + '">  ' + t.getText() + " </a></li>");
									}),
									n.append(e);
							}),
							$(t).append(n),
							n.find(".ep-draggable-item")
						);
					}),
					t
				);
			})(),
			u = n(5),
			d = n(15),
			c = (function () {
				return function (t) {
					(this.title = t.title), (this.type = t.type);
				};
			})(),
			ctable = (function () {
				return function (t) {
					(this.title = t.title),
						(this.type = t.type),
						(this.editable = t.editable),
						(this.columnDisplayEditable = t.columnDisplayEditable),
						(this.columnDisplayIndexEditable = t.columnDisplayIndexEditable),
						(this.columnTitleEditable = t.columnTitleEditable),
						(this.columnResizable = t.columnResizable),
						(this.columnAlignEditable = t.columnAlignEditable),
						(this.isEnableEditField = t.isEnableEditField),
						(this.isEnableContextMenu = t.isEnableContextMenu),
						(this.isEnableInsertRow = t.isEnableInsertRow),
						(this.isEnableDeleteRow = t.isEnableDeleteRow),
						(this.isEnableInsertColumn = t.isEnableInsertColumn),
						(this.isEnableDeleteColumn = t.isEnableDeleteColumn),
						(this.isEnableMergeCell = t.isEnableMergeCell);
				};
			})(),
			h = (function () {
				function t(t) {
					var e = this;
					(this.text = t.text),
						(this.field = t.field),
						(this.fields = t.fields),
						(this.title = t.title),
						(this.tid = t.tid),
						(this.data = t.data),
						(this.styler = t.styler),
						(this.formatter = t.formatter),
						(this.type = t.type),
						(this.options = t.options),
						(this.editable = t.editable != void 0 ? t.editable : !0),
						(this.columnDisplayEditable = t.columnDisplayEditable != void 0 ? t.columnDisplayEditable : !0),
						(this.columnDisplayIndexEditable =
							t.columnDisplayIndexEditable != void 0 ? t.columnDisplayIndexEditable : !0),
						(this.columnTitleEditable = t.columnTitleEditable != void 0 ? t.columnTitleEditable : !0),
						(this.columnResizable = t.columnResizable != void 0 ? t.columnResizable : !0),
						(this.columnAlignEditable = t.columnAlignEditable != void 0 ? t.columnAlignEditable : !0),
						(this.columns = []),
						(t.columns || []).forEach(function (t, n) {
							e.columns.push(e.createTableColumnArray(t));
						}),
						(this.rowStyler = t.rowStyler),
						(this.striped = t.striped),
						(this.groupFields = t.groupFields || []),
						(this.groupFormatter = t.groupFormatter),
						(this.groupFooterFormatter = t.groupFooterFormatter),
						(this.footerFormatter = t.footerFormatter),
						(this.rowsColumnsMerge = t.rowsColumnsMerge),
						(this.rowsColumnsMergeClean = t.rowsColumnsMergeClean),
						(this.gridColumnsFooterFormatter = t.gridColumnsFooterFormatter),
						(this.isEnableEditField = t.isEnableEditField != void 0 ? t.isEnableEditField : !0),
						(this.isEnableContextMenu = t.isEnableContextMenu != void 0 ? t.isEnableContextMenu : !0),
						(this.isEnableInsertRow = t.isEnableInsertRow != void 0 ? t.isEnableInsertRow : !0),
						(this.isEnableDeleteRow = t.isEnableDeleteRow != void 0 ? t.isEnableDeleteRow : !0),
						(this.isEnableInsertColumn = t.isEnableInsertColumn != void 0 ? t.isEnableInsertColumn : !0),
						(this.isEnableDeleteColumn = t.isEnableDeleteColumn != void 0 ? t.isEnableDeleteColumn : !0),
						(this.isEnableMergeCell = t.isEnableMergeCell != void 0 ? t.isEnableMergeCell : !0),
						(this.columnObj = this.makeColumnObj());
				}

				return (
					(t.prototype.getText = function () {
						return this.text || this.title || "";
					}),
					(t.prototype.createPrintElement = function (t) {
						var e = this;
						return (
							this.columns &&
								0 == this.columns.length &&
								(t.columns || []).forEach(function (t, n) {
									e.columns.push(e.createTableColumnArray(t));
								}),
							new d.a(this, t)
						);
					}),
					(t.prototype.getData = function () {
						return [{}];
					}),
					(t.prototype.createTableColumnArray = function (t) {
						var e = [];
						return (
							t.forEach(function (t, n) {
								e.push(new u.a(t));
							}),
							e
						);
					}),
					(t.prototype.getPrintElementTypeEntity = function () {
						if ("table" == this.type) {
							return new ctable({
								title: this.title,
								type: this.type,
								editable: this.editable,
								columnDisplayEditable: this.columnDisplayEditable,
								columnDisplayIndexEditable: this.columnDisplayIndexEditable,
								columnResizable: this.columnResizable,
								columnAlignEditable: this.columnAlignEditable,
								columnTitleEditable: this.columnTitleEditable,
								isEnableEditField: this.isEnableEditField,
								isEnableContextMenu: this.isEnableContextMenu,
								isEnableInsertRow: this.isEnableInsertRow,
								isEnableDeleteRow: this.isEnableDeleteRow,
								isEnableInsertColumn: this.isEnableInsertColumn,
								isEnableDeleteColumn: this.isEnableDeleteColumn,
								isEnableMergeCell: this.isEnableMergeCell,
							});
						}
						return new c({
							title: this.title,
							type: this.type,
						});
					}),
					(t.prototype.getFields = function () {
						return this.fields;
					}),
					(t.prototype.getOptions = function () {
						return this.options || {};
					}),
					(t.prototype.getColumnByColumnId = function (t) {
						return this.columnObj[t];
					}),
					(t.prototype.makeColumnObj = function (columns) {
						var t = {};
						return (
							columns
								? columns.forEach(function (e) {
										(e.id || e.columnId) && (t[e.id || e.columnId] = e);
									})
								: this.columns &&
									this.columns.forEach(function (e) {
										e.forEach(function (e) {
											(e.id || e.columnId) && (t[e.id || e.columnId] = e);
										});
									}),
							(this.columnObj = t),
							t
						);
					}),
					t
				);
			})(),
			f = n(4),
			g = n(3),
			m =
				((_r = function r(t, e) {
					return (_r =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(t, e);
				}),
				function (t, e) {
					function n() {
						this.constructor = t;
					}

					_r(t, e), (t.prototype = null === e ? Object.create(e) : ((n.prototype = e.prototype), new n()));
				}),
			v = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new g.a(n)),
						i.options.setDefault(new g.a(p.a.instance.image.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					m(e, t),
					(e.prototype.getReizeableShowPoints = function () {
						return ["s", "e", "se", "r"];
					}),
					(e.prototype.getData = function (t) {
						var e = "",
							f = this.getField();
						t
							? (e = f
									? f.split(".").reduce((a, c) => (a ? a[c] : t[c]), !1) || ""
									: this.options.src || this.printElementType.getData())
							: (e = this.options.src || this.printElementType.getData());
						var n = this.getFormatter();
						return n && (e = n(e, this.options, this._currenttemplateData)), e || "";
					}),
					(e.prototype.createTarget = function (t, e) {
						var n = $(
							'<div  class="hiprint-printElement hiprint-printElement-image" style="position: absolute;"><div class="hiprint-printElement-image-content" style="height:100%;width:100%"></div></div>',
						);
						return this.updateTargetImage(n, t, e), n;
					}),
					(e.prototype.initSizeByHtml = function (e) {
						t.prototype.initSizeByHtml.call(this, e), this.css(e, this.getData());
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.image;
					}),
					(e.prototype.updateDesignViewFromOptions = function () {
						this.designTarget &&
							(this.css(this.designTarget, this.getData()),
							this.updateTargetImage(this.designTarget, this.getTitle(), this.getData()));
					}),
					(e.prototype.updateTargetImage = function (t, e, n) {
						var i = t.find(".hiprint-printElement-image-content");
						i.find("img").length
							? i.find("img").attr("src", n)
							: i.html('<img style="width:100%;height:100%;" src="' + n + '">');
						if (n.length) i.find("img").css("cssText", `width:100%;height:100%;content:url("${n}")!important`);
						else i.find("img").css("cssText", "width:100%;height:100%;");
						if (this.options.fit) i.find("img").css("object-fit", this.options.fit);
						if (this.options.borderRadius) i.find("img").css("border-radius", this.options.borderRadius);
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			y = (function () {
				var _t4 = function t(e, n) {
					return (_t4 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t4(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			b = (function (t) {
				function e(e) {
					var n = this;
					return (e = e || {}), ((n = t.call(this, e) || this).leftSpaceRemoved = e.leftSpaceRemoved), n;
				}

				return (
					y(e, t),
					(e.prototype.getHideTitle = function () {
						return null == this.hideTitle ? this.defaultOptions.hideTitle : this.hideTitle;
					}),
					e
				);
			})(g.a),
			E = n(8),
			T = (function () {
				function t(t, idx, watermarkOptions, pr, scl, e, n, i, r, a, p, s, s1, l, u, d) {
					(this.panelPageRule = pr),
						(this.scale = scl),
						(this.watermarkOptions = watermarkOptions),
						(this.defaultPaperNumberFormat = "${paperNo}-${paperCount}"),
						(this.printLine = 0),
						(this.templateId = t),
						(this.panelIdx = idx),
						(this.width = o.a.mm.toPt(e)),
						(this.height = o.a.mm.toPt(n)),
						(this.mmwidth = e),
						(this.mmheight = n),
						(this.paperHeader = i >= 0 ? i : 0),
						(this.paperFooter = r),
						(this.contentHeight = r - i),
						this.createTarget(),
						(this.index = u),
						(this.paperNumberLeft = a || parseInt((this.width - 30).toString())),
						(this.paperNumberTop = p || parseInt((this.height - 22).toString())),
						(this.paperNumberDisabled = s),
						(this.paperNumberContinue = s1),
						(this.paperNumberFormat = l),
						(this.referenceElement = d
							? $.extend({}, d)
							: new E.a({
									top: 0,
									left: 0,
									height: 0,
									width: 0,
									bottomInLastPaper: 0,
									beginPrintPaperIndex: 0,
									printTopInPaper: 0,
									endPrintPaperIndex: 0,
								}));
				}

				return (
					(t.prototype.subscribePaperBaseInfoChanged = function (t) {
						this.onPaperBaseInfoChanged = t;
					}),
					(t.prototype.triggerOnPaperBaseInfoChanged = function (t) {
						this.onPaperBaseInfoChanged &&
							this.onPaperBaseInfoChanged({
								panelPageRule: this.panelPageRule,
								scale: this.scale,
								paperHeader: this.paperHeader,
								paperFooter: this.paperFooter,
								paperNumberLeft: this.paperNumberLeft,
								paperNumberTop: this.paperNumberTop,
								paperNumberDisabled: this.paperNumberDisabled,
								paperNumberContinue: this.paperNumberContinue,
								paperNumberFormat: this.paperNumberFormat,
							});
						o.a.event.trigger("hiprintTemplateDataChanged_" + this.templateId, t || "模板调整");
					}),
					(t.prototype.setFooter = function (t, e, n, i) {
						(this.firstPaperFooter = t),
							(this.evenPaperFooter = e),
							(this.oddPaperFooter = n),
							(this.lastPaperFooter = i);
					}),
					(t.prototype.setOffset = function (t, e) {
						this.setLeftOffset(t), this.setTopOffset(e);
					}),
					(t.prototype.setLeftOffset = function (t) {
						t ? this.paperContentTarget.css("left", t + "pt") : (this.paperContentTarget[0].style.left = "");
					}),
					(t.prototype.setTopOffset = function (t) {
						t ? this.paperContentTarget.css("top", t + "pt") : (this.paperContentTarget[0].style.top = "");
					}),
					(t.prototype.createTarget = function () {
						(this.target = $('<div class="hiprint-printPaper"><div class="hiprint-printPaper-content"></div></div>')),
							(this.paperContentTarget = this.target.find(".hiprint-printPaper-content")),
							this.target.css("width", this.mmwidth + "mm"),
							this.target.css("height", this.mmheight - p.a.instance.paperHeightTrim + "mm"),
							this.target.attr("original-height", this.mmheight),
							this.zoom(this.scale);
					}),
					(t.prototype.createHeaderLine = function () {
						var t = this;
						(this.headerLinetarget = $(
							'<div class="hiprint-headerLine"  style="position: absolute;width: 100%;border-top: 1px dashed #c9bebe;height: 7pt;"></div>',
						)),
							this.headerLinetarget.css("top", (this.paperHeader || -1) + "pt"),
							0 == this.paperHeader && this.headerLinetarget.addClass("hideheaderLinetarget"),
							this.paperContentTarget.append(this.headerLinetarget),
							this.dragHeadLineOrFootLine(this.headerLinetarget, function (e, n) {
								if (n >= t.paperFooter) {
									n = t.paperFooter - 10;
								}
								(t.paperHeader = n >= 0 ? n : 0), t.triggerOnPaperBaseInfoChanged();
							});
					}),
					(t.prototype.createFooterLine = function () {
						var t = this;
						(this.footerLinetarget = $(
							'<div class="hiprint-footerLine"  style="position: absolute;width: 100%;border-top: 1px dashed #c9bebe;height: 7pt;"></div>',
						)),
							this.footerLinetarget.css("top", parseInt(this.paperFooter.toString()) + "pt"),
							this.paperFooter == this.height &&
								(this.footerLinetarget.css("top", this.mmheight - p.a.instance.paperHeightTrim + "mm"),
								this.footerLinetarget.addClass("hidefooterLinetarget")),
							this.paperContentTarget.append(this.footerLinetarget),
							this.dragHeadLineOrFootLine(this.footerLinetarget, function (e, n) {
								if (n <= t.paperHeader) {
									n = t.paperHeader + 10;
								}
								(t.paperFooter = n), t.triggerOnPaperBaseInfoChanged();
							});
					}),
					(t.prototype.createPaperNumber = function (t, d) {
						var e = this,
							n = this.target.find(".hiprint-paperNumber");
						if (n.length) return n.html(t), n;
						var i = $('<span class="hiprint-paperNumber"  style="position: absolute">' + t + "</span>");
						return (
							i.css("top", this.paperNumberTop + "pt"),
							i.css("left", this.paperNumberLeft + "pt"),
							this.paperContentTarget.append(i),
							d &&
								this.dragHeadLineOrFootLine(
									i,
									function (t, n) {
										(e.paperNumberTop = n), (e.paperNumberLeft = t), e.triggerOnPaperBaseInfoChanged();
									},
									!0,
								),
							i
						);
					}),
					(t.prototype.getTarget = function () {
						return this.target;
					}),
					(t.prototype.append = function (t) {
						this.paperContentTarget.append(t);
					}),
					(t.prototype.updateReferenceElement = function (t) {
						t && (this.referenceElement = t);
					}),
					(t.prototype.updatePrintLine = function (t) {
						t >= this.printLine && (this.printLine = t);
					}),
					(t.prototype.design = function (t) {
						var e = this;
						this.createHeaderLine(),
							this.createFooterLine(),
							this.target.addClass("design"),
							t && t.grid && this.target.addClass("grid"),
							(this.paperNumberTarget = this.createPaperNumber(this.formatPaperNumber(1, 1), true)),
							this.createRuler(),
							this.createWaterMark(true, this.panelIdx, this.watermarkOptions),
							this.resetPaperNumber(this.paperNumberTarget),
							$(this.paperNumberTarget).bind("dblclick.hiprint", function () {
								null == e.paperNumberDisabled && (e.paperNumberDisabled = !1),
									(e.paperNumberDisabled = !e.paperNumberDisabled),
									e.resetPaperNumber(e.paperNumberTarget),
									e.triggerOnPaperBaseInfoChanged("初始");
							}),
							$(this.paperNumberTarget).bind("click.hiprint", function () {
								o.a.event.trigger("BuildCustomOptionSettingEventKey_" + e.templateId, {
									options: {
										paperNumberFormat: e.paperNumberFormat,
										paperNumberDisabled: e.paperNumberDisabled,
										paperNumberContinue: e.paperNumberContinue,
									},
									callback: function callback(t) {
										(e.paperNumberDisabled = !!t.paperNumberDisabled || void 0),
											(e.paperNumberContinue = t.paperNumberContinue),
											(e.paperNumberFormat = t.paperNumberFormat ? t.paperNumberFormat : void 0),
											e.createPaperNumber(e.formatPaperNumber(1, 1), true),
											e.resetPaperNumber(e.paperNumberTarget),
											e.triggerOnPaperBaseInfoChanged();
									},
								});
							});
					}),
					(t.prototype.resetPaperNumber = function (t) {
						this.paperNumberDisabled
							? t.addClass("hiprint-paperNumber-disabled")
							: t.removeClass("hiprint-paperNumber-disabled");
					}),
					(t.prototype.updatePaperNumber = function (t, e, n) {
						var i = this.createPaperNumber(this.formatPaperNumber(t, e));
						this.paperNumberDisabled
							? i.hide()
							: n && this.index % 2 == 1 && ((i[0].style.left = ""), i.css("right", this.paperNumberLeft + "pt"));
					}),
					(t.prototype.formatPaperNumber = function (t, e) {
						this.createWaterMark(false, t, this.watermarkOptions);
						return eval(
							"`" +
								(this.paperNumberFormat ? this.paperNumberFormat : this.defaultPaperNumberFormat)
									.replace("paperNo", t)
									.replace("paperCount", e) +
								"`",
						);
					}),
					(t.prototype.dragHeadLineOrFootLine = function (t, e, n) {
						var i = this;
						t.hidraggable({
							axis: n ? void 0 : "v",
							onDrag: function onDrag(t, n, i) {
								e(n, i);
							},
							moveUnit: "pt",
							minMove: p.a.instance.movingDistance,
							onBeforeDrag: function onBeforeDrag(t) {
								s.a.instance.draging = !0;
							},
							getScale: function getScale() {
								return i.scale || 1;
							},
							onStopDrag: function onStopDrag(t) {
								i.headerLinetarget.css("top", i.paperHeader + "pt");
								i.footerLinetarget.css("top", i.paperFooter + "pt");
								(s.a.instance.draging = !1),
									i.footerLinetarget.removeClass("hidefooterLinetarget"),
									i.headerLinetarget.removeClass("hideheaderLinetarget");
							},
						});
					}),
					(t.prototype.resize = function (t, e) {
						// 获取页脚高度比例
						var parperFooterRatio = this.paperFooter / this.height;
						(this.width = o.a.mm.toPt(t)),
							(this.height = o.a.mm.toPt(e)),
							(this.mmwidth = t),
							(this.mmheight = e),
							this.target.css("width", t + "mm"),
							this.target.css("height", e - p.a.instance.paperHeightTrim + "mm"),
							this.target.attr("original-height", this.mmheight);
						// 按比例计算页脚高度
						var paperFooter = this.height * parperFooterRatio;
						(this.paperFooter = paperFooter || this.height),
							this.footerLinetarget.css("top", paperFooter + "pt"),
							(this.contentHeight = this.paperFooter - this.paperHeader),
							// 设置纸张后, 页码位置重置问题
							(this.paperNumberLeft =
								this.paperNumberLeft > this.width ? parseInt((this.width - 30).toString()) : this.paperNumberLeft);
						this.paperNumberTop =
							this.paperNumberTop > this.height
								? (this.paperNumberTop = parseInt((this.height - 22).toString()))
								: this.paperNumberTop;
						this.paperNumberTarget.css("top", this.paperNumberTop + "pt"),
							this.paperNumberTarget.css("left", this.paperNumberLeft + "pt"),
							this.triggerOnPaperBaseInfoChanged("调整大小");
					}),
					(t.prototype.zoom = function (s) {
						if (s) {
							(this.scale = s), this.target.css("transform", "scale(" + s + ")");
							if (s > 1) {
								this.target.css("transform-origin", "-" + s + "% -" + s + "%");
							} else {
								this.target.css("transform-origin", "0 0");
							}
							this.triggerOnPaperBaseInfoChanged("缩放");
						}
					}),
					(t.prototype.getPaperFooter = function (t) {
						var e = this.index + t;
						return 0 == e
							? this.firstPaperFooter
								? this.firstPaperFooter
								: this.oddPaperFooter
									? this.oddPaperFooter
									: this.paperFooter
							: e % 2 == 0
								? this.oddPaperFooter
									? this.oddPaperFooter
									: this.paperFooter
								: e % 2 == 1
									? this.evenPaperFooter
										? this.evenPaperFooter
										: this.paperFooter
									: void 0;
					}),
					(t.prototype.getContentHeight = function (t) {
						return this.getPaperFooter(t) - this.paperHeader;
					}),
					(t.prototype.createRuler = function () {
						this.target.append(
							'<div class="hiprint_rul_wrapper">\n                     <img class="h_img" src="' +
								lImg +
								'" />\n                     <img class="v_img" src="' +
								vImg +
								'" />\n                    </div>',
						);
					}),
					(t.prototype.createWaterMark = function (watch, idx, opts) {
						var e = this;
						var options = Object.assign({}, opts || {}, {
							id: `${e.templateId}_${e.panelIdx}_${idx || 1}_${watch ? "design" : e.index}`,
							watch: watch,
							container: e.target[0],
						});
						if (!options.container) return;
						if (options.content) {
							if (watch) {
								watermark.destroyWatermark(
									Object.assign({}, options, {
										id: `${e.templateId}_${e.panelIdx}_${idx || 1}_${e.index}`,
									}),
								);
							}
							watermark.createWatermark(options);
						} else {
							watermark.destroyWatermark(options);
						}
					}),
					(t.prototype.displayHeight = function () {
						return this.mmheight - p.a.instance.paperHeightTrim + "mm";
					}),
					(t.prototype.displayWidth = function () {
						return this.mmwidth + "mm";
					}),
					(t.prototype.getPanelTarget = function () {
						return this.target.parent(".hiprint-printPanel ");
					}),
					t
				);
			})(),
			P = n(6),
			_ = (function () {
				var _t5 = function t(e, n) {
					return (_t5 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t5(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			w = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new b(n)),
						i.options.setDefault(new b(p.a.instance.longText.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					_(e, t),
					(e.prototype.getDesignTarget = function (e) {
						var n = t.prototype.getDesignTarget.call(this, e);
						return n.find(".hiprint-printElement-longText-content").css("border", "1px dashed #cebcbc"), n;
					}),
					(e.prototype.getProxyTarget = function (t) {
						t && this.SetProxyTargetOption(t);
						var e = this.getData(),
							n = this.createTarget(this.printElementType.getText(!0), e);
						return this.updateTargetSize(n), this.css(n, e), n;
					}),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData(),
								e = this.getHtml(this.designPaper)[0].target;
							this.designTarget
								.find(".hiprint-printElement-longText-content")
								.html(e.find(".hiprint-printElement-longText-content").html()),
								this.css(this.designTarget, t);
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.longText;
					}),
					(e.prototype.getTitle = function () {
						return this.options.title || this.printElementType.title;
					}),
					(e.prototype.getData = function (t) {
						var f = this.getField();
						var e = f ? f.split(".").reduce((a, c) => (a ? a[c] : t ? t[c] : ""), !1) || "" : "";
						return t ? e || "" : this.options.testData || this.printElementType.getData() || "";
					}),
					(e.prototype.updateTargetText = function (t, e, n) {
						var i = t.find(".hiprint-printElement-longText-content"),
							o = this.getText(e, n);
						i.html(o);
					}),
					(e.prototype.createTarget = function (t, e) {
						var n = $(
							'<div  class="hiprint-printElement hiprint-printElement-longText" style="position: absolute;"><div class="hiprint-printElement-longText-content hiprint-printElement-content" style="height:100%;width:100%"></div></div>',
						);
						return this.updateTargetText(n, t, e), n;
					}),
					(e.prototype.getText = function (t, e) {
						var n = this.getFormatter();
						e && (e = 0 != this.options.leftSpaceRemoved ? e.toString().replace(/^\s*/, "") : e);
						return (
							(this.getField()
								? (this.options.getHideTitle() ? "" : t ? t + "：" : "") +
									(n ? n(t, e, this.options, this._currenttemplateData) : e)
								: n
									? n(t, t, this.options, this._currenttemplateData)
									: t || "") || ""
						);
					}),
					(e.prototype.getHtml = function (t, e) {
						this.setCurrenttemplateData(e), this.createTempContainer();
						var n = this.getPaperHtmlResult(t, e);
						return this.removeTempContainer(), n;
					}),
					(e.prototype.getHeightByData = function (t) {
						this.createTempContainer();
						var e = this.getPaperHtmlResult(
							new T("", "", void 0, 1e3, 1e3, 0, 25e3, 0, 0, !0, !0, void 0, 0, void 0),
							{},
							t,
						);
						return (
							this.removeTempContainer(),
							e[0].referenceElement.bottomInLastPaper - e[0].referenceElement.printTopInPaper
						);
					}),
					(e.prototype.getLongTextIndent = function () {
						return this.options.longTextIndent
							? '<span class="long-text-indent" style="margin-left:' + this.options.longTextIndent + 'pt"></span>'
							: '<span class="long-text-indent"></span>';
					}),
					(e.prototype.getPaperHtmlResult = function (t, e, n) {
						var i = this,
							o = [],
							r = 0,
							a = n || this.getData(e),
							p = this.getText(this.getTitle(), a),
							s = this.createTarget(this.getTitle(), this.options.testData || "");
						this.css(s, a),
							e ? this.updateTargetWidth(s) : this.updateTargetSize(s),
							this.getTempContainer().html(""),
							this.getTempContainer().append(s);
						var l = [this.getLongTextIndent()],
							u = p.split(new RegExp("\r|\n", "g"));
						if (
							(u.forEach(function (t, e) {
								var n = 0 != i.options.leftSpaceRemoved ? (t || "").toString().replace(/^\s*/, "") : t;
								(l = l.concat(n.split(""))), e < u.length - 1 && l.push("<br/>" + i.getLongTextIndent());
							}),
							0 == l.length && (l = [""]),
							this.isHeaderOrFooter() || this.isFixed() || !e)
						)
							return (
								(f = this.getStringBySpecificHeight(l, 25e3, s)).target.css("left", this.options.displayLeft()),
								f.target.css("top", this.options.displayTop()),
								(f.target[0].height = ""),
								o.push(
									new P.a({
										target: f.target,
										printLine: this.options.displayTop() + f.height,
										referenceElement: new E.a({
											top: this.options.getTop(),
											left: this.options.getLeft(),
											height: this.options.getHeight(),
											width: this.options.getWidth(),
											beginPrintPaperIndex: t.index,
											bottomInLastPaper: this.options.getTop() + f.height,
											printTopInPaper: this.options.getTop(),
										}),
									}),
								),
								o
							);

						for (var d = this.getBeginPrintTopInPaperByReferenceElement(t); l.length > 0; ) {
							var c = 0,
								h = t.getPaperFooter(r);
							0 == r &&
								d > h &&
								"none" != t.panelPageRule &&
								((d = d - h + t.paperHeader),
								o.push(
									new P.a({
										target: void 0,
										printLine: void 0,
									}),
								),
								r++,
								(c = t.getContentHeight(r) - (d - t.paperHeader)),
								(h = t.getPaperFooter(r)));
							var f = this.getStringBySpecificHeight(l, c > 0 ? c : 0 == r ? h - d : t.getContentHeight(r), s);
							l.splice(0, f.length);
							var g = void 0,
								m = void 0;
							f.target.css("left", this.options.displayLeft()),
								(f.target[0].height = ""),
								0 == r || c > 0
									? ((m = d),
										f.target.css("top", m + "pt"),
										(g =
											l.length > 0
												? d + f.height
												: null != this.options.lHeight
													? d + (f.height > this.options.lHeight ? f.height : this.options.lHeight)
													: d + f.height))
									: ((m = t.paperHeader), f.target.css("top", m + "pt"), (g = m + f.height)),
								o.push(
									new P.a({
										target: f.target,
										printLine: g,
										referenceElement: new E.a({
											top: this.options.getTop(),
											left: this.options.getLeft(),
											height: this.options.getHeight(),
											width: this.options.getWidth(),
											beginPrintPaperIndex: t.index,
											bottomInLastPaper: g,
											printTopInPaper: m,
										}),
									}),
								),
								r++;
							e && this.updatePanelHeight(g + this.options.getHeight(), t);
						}

						return o;
					}),
					(e.prototype.getStringBySpecificHeight = function (t, e, n) {
						var i = o.a.pt.toPx(e);
						var r = void 0;
						var noPaging = "none" == this.panel.panelPageRule;
						if (noPaging) {
							r = this.IsPaginationIndex(t, t.length, -1, n);
						} else {
							r = this.IsPaginationIndex(t, t.length - 1, i, n);
						}
						return r.IsPagination ? r : this.BinarySearch(t, 0, t.length - 1, i, n);
					}),
					(e.prototype.BinarySearch = function (t, e, n, i, o) {
						var r = Math.floor((e + n) / 2);
						if (e > n)
							return (
								o.find(".hiprint-printElement-longText-content").html(""),
								{
									IsPagination: !0,
									height: 0,
									length: 0,
									target: o.clone(),
								}
							);
						var a = this.IsPaginationIndex(t, r, i, o);
						return a.IsPagination
							? a
							: "l" == a.move
								? this.BinarySearch(t, e, r - 1, i, o)
								: this.BinarySearch(t, r + 1, n, i, o);
					}),
					(e.prototype.IsPaginationIndex = function (t, e, n, i) {
						if (-1 == n) {
							i.find(".hiprint-printElement-longText-content").html(t.slice(0, e).join(""));
							var a = i.height();
							return {
								IsPagination: !0,
								height: o.a.px.toPt(a),
								length: t.length,
								target: i.clone(),
							};
						}
						i.find(".hiprint-printElement-longText-content").html(t.slice(0, e + 2).join(""));
						var r = i.height();
						i.find(".hiprint-printElement-longText-content").html(t.slice(0, e + 1).join(""));
						var a = i.height();
						return e >= t.length - 1 && a < n
							? {
									IsPagination: !0,
									height: o.a.px.toPt(a),
									length: t.length,
									target: i.clone(),
								}
							: a <= n && r >= n
								? {
										IsPagination: !0,
										height: a,
										length: e + 1,
										target: i.clone(),
									}
								: a >= n
									? {
											IsPagination: !1,
											move: "l",
										}
									: r <= n
										? {
												IsPagination: !1,
												move: "r",
											}
										: {
												IsPagination: !0,
												result: 1,
											};
					}),
					e
				);
			})(f.a),
			x = (function () {
				function t() {}

				return (
					(t.replaceEnterAndNewline = function (t, e) {
						return t.replace(new RegExp("\r|\n|/g", "g"), e);
					}),
					(t.replaceTab = function (t, e) {
						return t.replace(new RegExp("\t/g", "g"), e);
					}),
					(t.replaceEnterAndNewlineAndTab = function (t, e) {
						return t.replace(new RegExp("\r|\n|\t|/g", "g"), e);
					}),
					t
				);
			})(),
			C = (function () {
				var _t6 = function t(e, n) {
					return (_t6 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t6(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			O = (function (t) {
				function e(e) {
					var n = t.call(this, e) || this;
					return n.title && (n.title = x.replaceEnterAndNewlineAndTab(n.title, "")), n;
				}

				return (
					C(e, t),
					(e.prototype.getHideTitle = function () {
						return null == this.hideTitle ? this.defaultOptions.hideTitle : this.hideTitle;
					}),
					(e.prototype.getTextType = function () {
						return (null == this.textType ? this.defaultOptions.textType : this.textType) || "text";
					}),
					(e.prototype.getFontSize = function () {
						return (null == this.fontSize ? this.defaultOptions.fontSize : this.fontSize) || 9;
					}),
					(e.prototype.getbarcodeMode = function () {
						return (null == this.barcodeMode ? this.defaultOptions.barcodeMode : this.barcodeMode) || "CODE128";
					}),
					(e.prototype.getBarWidth = function () {
						return (null == this.barWidth ? this.defaultOptions.barWidth : this.barWidth) || 1;
					}),
					(e.prototype.getBarAutoWidth = function () {
						// 该属性 "true" 为 true，其余一概为 false
						return (
							(null == this.barAutoWidth
								? this.defaultOptions.barAutoWidth === "true"
								: this.barAutoWidth === "true") ?? true
						);
					}),
					(e.prototype.getQRcodeLevel = function () {
						return (null == this.qrCodeLevel ? this.defaultOptions.qrCodeLevel : this.qrCodeLevel) || 0;
					}),
					e
				);
			})(g.a),
			H = (function () {
				var _t7 = function t(e, n) {
					return (_t7 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t7(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			D = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new O(n)),
						i.options.setDefault(new O(p.a.instance.text.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					H(e, t),
					(e.prototype.getDesignTarget = function (e) {
						return t.prototype.getDesignTarget.call(this, e);
					}),
					(e.prototype.getProxyTarget = function (t) {
						t && this.SetProxyTargetOption(t);
						var e = this.getData(),
							n = this.createTarget(this.printElementType.getText(!0), e);
						return this.updateTargetSize(n), this.css(n, e), n;
					}),
					(e.prototype.updateDesignViewFromOptions = function () {
						// ! pub-beta 0.0.57-beta22 这里的处理似乎重复了，影响了 updateTargetText 方法执行，故在此处注释掉
						// var els = this.panel.printElements.filter(function (t) {
						//   return ('block' == t.designTarget.children().last().css('display')
						//     && t.designTarget.children().last().hasClass('selected')) && !t.printElementType.type.includes('table');
						// });
						// els.forEach(ele => {
						//   var t = ele.getData()
						//   ele.css(ele.designTarget, t)
						//   this.updateTargetText(ele.designTarget, ele.getTitle(), t)
						// })
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t), this.updateTargetText(this.designTarget, this.getTitle(), t);
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.text;
					}),
					(e.prototype.getTitle = function () {
						var t = this.options.title || this.printElementType.title || "";
						return t && (t = x.replaceEnterAndNewlineAndTab(t, "")), t;
					}),
					(e.prototype.getData = function (t) {
						var e = void 0;
						var f = this.getField();
						if (
							((e = t
								? f
									? f.split(".").reduce((a, c) => (a ? a[c] : t ? t[c] : ""), !1) || ""
									: ""
								: this.options.testData || this.printElementType.getData() || ""),
							this.options.format)
						) {
							if ("datetime" == this.options.dataType) return o.a.dateFormat(e, this.options.format);

							if ("boolean" == this.options.dataType) {
								var n = this.options.format.split(":");
								if (n.length > 0) return !0 === e || "true" === e ? n[0] : n[1];
							}
						}
						return e;
					}),
					(e.prototype.updateTargetText = function (t, e, n, i, rowIndex) {
						var r = this.getFormatter(),
							a = t.find(".hiprint-printElement-text-content"),
							p = "";
						p = this.getField()
							? (this.options.getHideTitle() ? "" : e ? e + "：" : "") +
								hinnn.toUpperCase(this.options.upperCase, r ? r(e, n, this.options, this._currenttemplateData, t) : n)
							: (n = hinnn.toUpperCase(
									this.options.upperCase,
									r ? r(e, e, this.options, this._currenttemplateData, t) : e,
								));
						var s = this.options.getTextType();
						if ("text" == s) a.html(p);
						else {
							if ("barcode" == s) {
								a.css({
									display: "flex",
									"flex-direction": "column",
								});
								// pub-beta 0.0.57-beta22 移除插件通过 div 添加的文本元素，默认使用 JsBarcode 生成条形码文本
								a.html(
									'<svg width="100%" display="block" height="100%" class="hibarcode_imgcode" preserveAspectRatio="none slice"></svg>',
								);
								try {
									n
										? (JsBarcode(a.find(".hibarcode_imgcode")[0], n, {
												format: this.options.getbarcodeMode(),
												width: this.options.getBarWidth(),
												textMargin: -1,
												lineColor: this.options.color || "#000000",
												margin: 0,
												height: parseInt(o.a.pt.toPx(this.options.getHeight() || 10).toString()),
												displayValue: !this.options.hideTitle,
											}),
											a.find(".hibarcode_imgcode").attr("height", "100%"),
											a.find(".hibarcode_imgcode").attr("width", "100%"))
										: a.html("");
									// pub-beta 0.0.57-beta22 解决条形码自动宽度问题
									let svgWidth = a.find(".hibarcode_imgcode rect")[0].attributes.width.value;
									svgWidth = Math.ceil(hinnn.px.toPt(svgWidth * 1.05));
									if (this.options.getBarAutoWidth() && svgWidth > this.options.width) {
										a.parent().css("width", svgWidth + "pt");
										this.options.width = svgWidth;
									}
								} catch (t) {
									console.log(t), a.html(`${i18n.__("此格式不支持该文本")}`);
								}
							}

							if ("qrcode" == s) {
								a.html("");

								try {
									if (n) {
										a.css({
											display: "flex",
											"flex-direction": "column",
										});
										var width = this.options.width;
										var height =
											this.options.height -
											(!this.options.hideTitle
												? (this.options.lineHeight ?? (this.options.fontSize ?? 10.5) * 1.5)
												: 0);
										var box = $('<div class="hiqrcode_imgcode"></div>').css({
											width: Math.min(width, height) + "pt",
											height: Math.min(width, height) + "pt",
											margin: "auto",
										});
										new QRCode(box[0], {
											width: "100%",
											height: "100%",
											colorDark: this.options.color || "#000000",
											useSVG: !0,
											correctLevel: this.options.getQRcodeLevel(),
										}).makeCode(n);
										a.html(box),
											!this.options.hideTitle &&
												a.append(`<div class="hiqrcode_displayValue" style="white-space:nowrap">${n}</div>`);
									}
								} catch (t) {
									console.log(t), a.html(`${i18n.__("二维码生成失败")}`);
								}
							}
						}
					}),
					(e.prototype.onResize = function (e, n, i, o, r) {
						t.prototype.onResize.call(this, e, n, i, o, r);
						("barcode" != this.options.getTextType() && "qrcode" != this.options.getTextType()) ||
							this.updateTargetText(this.designTarget, this.getTitle(), this.getData());
					}),
					(e.prototype.createTarget = function (t, e, n) {
						var i = $(
							'<div tabindex="1" class="hiprint-printElement hiprint-printElement-text" style="position: absolute;"><div class="hiprint-printElement-text-content hiprint-printElement-content" style="height:100%;width:100%"></div></div>',
						);
						return this.updateTargetText(i, t, e, n), i;
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			I = (function () {
				var _t8 = function t(e, n) {
					return (_t8 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t8(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			R = (function (t) {
				function e(e) {
					return t.call(this, e) || this;
				}

				return I(e, t), e;
			})(g.a),
			M = (function () {
				var _t9 = function t(e, n) {
					return (_t9 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t9(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			S = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new R(n)),
						i.options.setDefault(new R(p.a.instance.html.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					M(e, t),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t), this.updateTargetHtml();
						}
					}),
					(e.prototype.updateTargetHtml = function () {
						var t = this.getFormatter();

						if (t) {
							var e = t(this.getData(), this.options, this._currenttemplateData);
							this.designTarget.find(".hiprint-printElement-html-content").html(e);
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.html;
					}),
					(e.prototype.createTarget = function (t, e) {
						var n = $(
								'<div  class="hiprint-printElement hiprint-printElement-html" style="position: absolute;"><div class="hiprint-printElement-html-content" style="height:100%;width:100%"></div></div>',
							),
							i = this.getFormatter();

						if (i) {
							var o = i(this.getData(), this.options, this._currenttemplateData);
							n.find(".hiprint-printElement-html-content").append(o);
						} else this.options.content && n.find(".hiprint-printElement-html-content").append(this.options.content);

						return n;
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			B = (function () {
				var _t10 = function t(e, n) {
					return (_t10 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t10(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			F = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new g.a(n)),
						i.options.setDefault(new g.a(p.a.instance.vline.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					B(e, t),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t);
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.vline;
					}),
					(e.prototype.createTarget = function (t, e) {
						return $(
							'<div class="hiprint-printElement hiprint-printElement-vline" style="border-left:1px solid;position: absolute;"></div>',
						);
					}),
					(e.prototype.getReizeableShowPoints = function () {
						return ["s", "r"];
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			L = (function () {
				var _t11 = function t(e, n) {
					return (_t11 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t11(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			A = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new g.a(n)),
						i.options.setDefault(new g.a(p.a.instance.hline.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					L(e, t),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t);
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.hline;
					}),
					(e.prototype.createTarget = function (t, e) {
						return $(
							'<div class="hiprint-printElement hiprint-printElement-hline" style="border-top:1px solid;position: absolute;"></div>',
						);
					}),
					(e.prototype.getReizeableShowPoints = function () {
						return ["e", "r"];
					}),
					e
				);
			})(f.a),
			z = (function () {
				var _t12 = function t(e, n) {
					return (_t12 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t12(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			k = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new g.a(n)),
						i.options.setDefault(new g.a(p.a.instance.rect.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					z(e, t),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t);
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.rect;
					}),
					(e.prototype.createTarget = function (t, e) {
						return $(
							'<div class="hiprint-printElement hiprint-printElement-rect" style="border:1px solid;position: absolute;"></div>',
						);
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			N = (function () {
				var _t13 = function t(e, n) {
					return (_t13 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t13(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			V = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new g.a(n)),
						i.options.setDefault(new g.a(p.a.instance.oval.default).getPrintElementOptionEntity()),
						i
					);
				}

				return (
					N(e, t),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t);
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.oval;
					}),
					(e.prototype.createTarget = function (t, e) {
						return $(
							'<div class="hiprint-printElement hiprint-printElement-oval" style="border:1px solid;position: absolute;border-radius: 50%;"></div>',
						);
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			barcode = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new g.a(n)),
						i.options.setDefault(new g.a(p.a.instance.barcode.default).getPrintElementOptionEntity()),
						i
					);
				}
				return (
					N(e, t),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t), this.initBarcode(this.designTarget, this.getTitle(), this.getData());
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.barcode;
					}),
					(e.prototype.getBarAutoWidth = function () {
						return (
							(null == this.options.barAutoWidth
								? this.options.defaultOptions.barAutoWidth === "true"
								: this.options.barAutoWidth === "true") ?? true
						);
					}),
					(e.prototype.onResize = function (e, n, i, o, r) {
						t.prototype.onResize.call(this, e, n, i, o, r);
						this.initBarcode(this.designTarget, this.getTitle(), this.getData());
					}),
					(e.prototype.getTitle = function () {
						return this.options.title || this.printElementType.title;
					}),
					(e.prototype.getData = function (t) {
						var e = void 0;
						var f = this.getField();
						e = t
							? f
								? f.split(".").reduce((a, c) => (a ? a[c] : t ? t[c] : ""), !1) || ""
								: ""
							: this.options.testData || this.printElementType.getData() || "";
						return e;
					}),
					(e.prototype.initBarcode = function (designTarget, title, text) {
						designTarget = designTarget || this.designTarget;
						var content = designTarget.find(".hiprint-printElement-barcode-content");
						try {
							// 计算 barcode 的高度，判断是否需要减去 title，使 title 包含在元素内部
							const height = o.a.pt.toMm(
								this.options.height -
									(!this.options.hideTitle ? (this.options.lineHeight ?? (this.options.fontSize ?? 10.5) * 1.5) : 0),
							);
							var barcode = bwipjs.toSVG({
								bcid: this.options.barcodeType || "code128",
								text: text || this.options.testData || this.options.title,
								scale: this.options.barWidth || 1,
								width: !this.getBarAutoWidth() ? parseInt(o.a.pt.toMm(this.options.getWidth())) : "",
								height: parseInt(height),
								includetext: !this.options.hideTitle,
								barcolor: this.options.barColor || "#000",
							});
							// pub-beta 0.0.57-beta22 优化了条码自动调整宽度的逻辑，title 文本改为使用 bwipjs 文本内部实现
							barcode = $(barcode);
							// pub-beta 0.0.57-beta22 svg 元素需要添加 preserveAspectRatio 属性，使其横向可以自适应缩放
							barcode.attr("preserveAspectRatio", "none slice");
							let svgWidth = barcode[0].attributes.viewBox.value.split(" ")[2]; // 通过 viewBox 属性获取 bwipjs 内部生成的 svg 宽度
							svgWidth = Math.ceil(hinnn.px.toPt(svgWidth * 1.05));
							if (this.getBarAutoWidth() && svgWidth > this.options.width) {
								content.parent().css("width", svgWidth + "pt");
								barcode.css("height", "100%");
								this.options.width = svgWidth;
							}
							content.html(barcode);
							// if (!this.options.hideTitle) {
							//   const titleText = title ? title + ( text ? ':' : '' ) : '';
							//   const textAlign = this.options.textAlign || 'center';
							//   // 支持type为barcode的textAlign属性
							//   const textStyle = textAlign === 'justify' ? 'text-align-last: justify;text-justify: distribute-all-lines;' : `text-align: ${ textAlign };`
							//   content.append($(`<div class="hiprint-printElement-barcode-content-title" style="${ textStyle }">${ titleText }${ text }</div>`))
							// }
						} catch (error) {
							console.error(error);
							content.html($(`<div>${i18n.__("条形码生成失败")}</div>`));
						}
					}),
					// 设置 barcode 元素 resize 控制点
					(e.prototype.getReizeableShowPoints = function () {
						return ["s", "e", "se", "r"];
					}),
					(e.prototype.createTarget = function (title, data) {
						var designTarget = $(
							'<div class="hiprint-printElement hiprint-printElement-barcode" style="position: absolute;"><div class="hiprint-printElement-barcode-content" style="height:100%;width:100%;display:flex;flex-direction:column"></div></div>',
						);
						this.initBarcode(designTarget, title, data);
						return designTarget;
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			qrcode = (function (t) {
				function e(e, n) {
					var i = t.call(this, e) || this;
					return (
						(i.options = new g.a(n)),
						i.options.setDefault(new g.a(p.a.instance.qrcode.default).getPrintElementOptionEntity()),
						i
					);
				}
				return (
					N(e, t),
					(e.prototype.updateDesignViewFromOptions = function () {
						if (this.designTarget) {
							var t = this.getData();
							this.css(this.designTarget, t), this.initQrcode(this.designTarget, this.getTitle(), this.getData());
						}
					}),
					(e.prototype.getConfigOptions = function () {
						return p.a.instance.qrcode;
					}),
					(e.prototype.onResize = function (e, n, i, o, r) {
						t.prototype.onResize.call(this, e, n, i, o, r);
						this.initQrcode(this.designTarget, this.getTitle(), this.getData());
					}),
					(e.prototype.getTitle = function () {
						return this.options.title || this.printElementType.title;
					}),
					(e.prototype.getData = function (t) {
						var e = void 0;
						var f = this.getField();
						e = t
							? f
								? f.split(".").reduce((a, c) => (a ? a[c] : t ? t[c] : ""), !1) || ""
								: ""
							: this.options.testData || this.printElementType.getData() || "";
						return e;
					}),
					(e.prototype.initQrcode = function (designTarget, title, text) {
						designTarget = designTarget || this.designTarget;
						var content = designTarget.find(".hiprint-printElement-qrcode-content");
						try {
							const width = o.a.pt.toPx(this.options.getWidth());
							// 计算 qrcode 的高度，判断是否需要减去 title，使 title 包含在元素内部
							const height = o.a.pt.toPx(
								this.options.height -
									(!this.options.hideTitle ? (this.options.lineHeight ?? (this.options.fontSize ?? 10.5) * 1.5) : 0),
							);
							// 根据宽高 判断 qrcode 上下、左右 留白边距
							const paddingwidth = width >= height ? Math.abs(parseInt((width - height) / 2)) : 0;
							const paddingheight = width >= height ? 0 : Math.abs(parseInt((height - width) / 2));
							var qrcode = bwipjs.toSVG({
								bcid: this.options.qrcodeType || "qrcode",
								text: text || this.options.testData || this.options.title,
								scale: 1,
								paddingwidth,
								paddingheight,
								// 保持 qrcode 始终为正方形
								width: Math.min(parseInt(width / 2.835), parseInt(height / 2.835)),
								height: Math.min(parseInt(width / 2.835), parseInt(height / 2.835)),
								includetext: false,
								eclevel: ["M", "L", "H", "Q"][this.options.qrCodeLevel ?? 0],
								barcolor: this.options.barColor || "#000",
							});
							content.html($(qrcode));
							if (!this.options.hideTitle) {
								const titleText = title ? title + (text ? ":" : "") : "";
								const textAlign = this.options.textAlign || "center";
								// 支持type为qrcode的textAlign属性
								const textStyle =
									textAlign === "justify"
										? "text-align-last: justify;text-justify: distribute-all-lines;"
										: `text-align: ${textAlign};`;
								content.append(
									$(
										`<div class="hiprint-printElement-qrcode-content-title" style="${textStyle}">${titleText}${text}</div>`,
									),
								);
							}
						} catch (error) {
							console.error(error);
							content.html($(`<div>${i18n.__("二维码生成失败")}</div>`));
						}
					}),
					// 设置 qrcode 元素 resize 控制点
					(e.prototype.getReizeableShowPoints = function () {
						return ["s", "e", "se", "r"];
					}),
					(e.prototype.createTarget = function (title, data) {
						var designTarget = $(
							'<div class="hiprint-printElement hiprint-printElement-qrcode" style="position: absolute;"><div class="hiprint-printElement-qrcode-content" style="height:100%;width:100%;display:flex;flex-direction:column"></div></div>',
						);
						this.initQrcode(designTarget, title, data);
						return designTarget;
					}),
					(e.prototype.getHtml = function (t, e, n) {
						return this.getHtml2(t, e, n);
					}),
					e
				);
			})(f.a),
			W = (function () {
				function t() {}

				return (
					(t.createPrintElement = function (t, e) {
						return "text" == t.type
							? new D(t, e)
							: "image" == t.type
								? new v(t, e)
								: "longText" == t.type
									? new w(t, e)
									: "table" == t.type
										? new d.a(t, e)
										: "html" == t.type
											? new S(t, e)
											: "vline" == t.type
												? new F(t, e)
												: "hline" == t.type
													? new A(t, e)
													: "rect" == t.type
														? new k(t, e)
														: "oval" == t.type
															? new V(t, e)
															: "barcode" == t.type
																? new barcode(t, e)
																: "qrcode" == t.type
																	? new qrcode(t, e)
																	: void 0;
					}),
					t
				);
			})(),
			j = (function () {
				function t(t) {
					(this.field = t.field),
						(this.fields = t.fields),
						(this.title = t.title),
						(this.text = t.text),
						(this.tid = t.tid),
						(this.data = t.data),
						(this.styler = t.styler),
						(this.formatter = t.formatter),
						(this.type = t.type),
						(this.onRendered = t.onRendered),
						(this.options = t.options);
				}

				return (
					(t.prototype.getText = function (t) {
						return t ? this.title || this.text || "" : this.text || this.title || "";
					}),
					(t.prototype.getData = function () {
						return this.data;
					}),
					(t.prototype.createPrintElement = function (t) {
						var e = {};
						return $.extend(e, t || {}), W.createPrintElement(this, e);
					}),
					(t.prototype.getPrintElementTypeEntity = function () {
						return new c({
							title: this.title,
							type: this.type,
						});
					}),
					(t.prototype.getFields = function () {
						return this.fields;
					}),
					(t.prototype.getOptions = function () {
						return this.options || {};
					}),
					t
				);
			})(),
			U = n(16),
			K = n(12),
			G = (function () {
				var _t14 = function t(e, n) {
					return (_t14 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t14(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			q = (function (t) {
				function e(e) {
					var n = t.call(this, e) || this;
					(e = e || {}).columns
						? ((n.columns = []),
							e.columns.forEach(function (t) {
								n.columns.push(new K.a(t));
							}))
						: (n.columns = [
								new K.a({
									columns: [
										new u.a({
											width: 100,
										}),
										new u.a({
											width: 100,
										}),
									],
								}),
							]);
					return (
						(n.lHeight = e.lHeight),
						(n.autoCompletion = e.autoCompletion),
						(n.tableFooterRepeat = e.tableFooterRepeat),
						n
					);
				}

				return (
					G(e, t),
					(e.prototype.getPrintElementOptionEntity = function () {
						var e = t.prototype.getPrintElementOptionEntity.call(this);
						e.fields = this.fields;
						return (
							(e.columns = []),
							this.columns.forEach(function (t) {
								e.columns.push(t.getPrintElementOptionEntity());
							}),
							e
						);
					}),
					e
				);
			})(g.a),
			Q = (function () {
				var _t16 = function t(e, n) {
					return (_t16 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t16(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			tt = (function () {
				var _t17 = function t(e, n) {
					return (_t17 =
						Object.setPrototypeOf ||
						(_instanceof(
							{
								__proto__: [],
							},
							Array,
						) &&
							function (t, e) {
								t.__proto__ = e;
							}) ||
						function (t, e) {
							for (var n in e) {
								e.hasOwnProperty(n) && (t[n] = e[n]);
							}
						})(e, n);
				};

				return function (e, n) {
					function i() {
						this.constructor = e;
					}

					_t17(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()));
				};
			})(),
			et = (function (t) {
				function e(e) {
					return t.call(this, e) || this;
				}

				return (
					tt(e, t),
					(e.prototype.createPrintElement = function (t) {
						var e = {};
						return $.extend(e, t || {}), W.createPrintElement(this, e);
					}),
					(e.prototype.getPrintElementTypeEntity = function () {
						return new c({
							title: this.title,
							type: this.type,
						});
					}),
					e
				);
			})(j),
			nt = (function () {
				function t() {}

				return (
					(t.createPrintElementType = function (t) {
						return (t.type = t.type || "text"), "text" == t.type ? new et(t) : "table" == t.type ? new h(t) : new j(t);
					}),
					t
				);
			})(),
			it = (function () {
				function t() {}

				return (
					(t.getElementTypeGroups = function (e) {
						var n = t.formatterModule(e);
						return a.instance[n] || [];
					}),
					(t.getElementType = function (t, e) {
						if (t) return a.instance.getElementType(t);
						nt.createPrintElementType({
							type: e,
						});
					}),
					(t.build = function (e, n) {
						var i = t.formatterModule(n),
							o = new l().createPrintElementTypeHtml(e, this.getElementTypeGroups(i));
						this.enableDrag(o);
					}),
					(t.buildByHtml = function (t) {
						this.enableDrag(t);
					}),
					(t.enableDrag = function (e) {
						e.hidraggable({
							revert: !0,
							proxy: function proxy(t) {
								var e = s.a.instance.getDragingPrintElement(),
									n = e.printElement.getProxyTarget(e.printElement.printElementType.getOptions());
								return n.appendTo("body"), n.css("z-index", "9999"), n;
							},
							moveUnit: "pt",
							minMove: 4,
							onBeforeDrag: function onBeforeDrag(e) {
								s.a.instance.draging = !0;
								var tid = $(e.data.target).attr("tid");
								var n = t.getElementType(tid, $(e.data.target).attr("ptype"));
								if (!n) {
									throw new Error(`${i18n.__("请检查 hiprint.init 的 provider 是否配置了")} [${tid}]`);
									return !1;
								}
								var ele = n.createPrintElement();
								if (!ele) {
									if (n.type == "tableCustom") {
										throw new Error(`${i18n.__("已移除'tableCustom',请替换使用'table'详情见更新记录")}`);
										return !1;
									}
								}
								return s.a.instance.setDragingPrintElement(ele), !0;
							},
							onDrag: function onDrag(t, e, n) {
								s.a.instance.getDragingPrintElement().updatePosition(e, n);
							},
							onStopDrag: function onStopDrag(t) {
								s.a.instance.draging = !1;
							},
						});
					}),
					(t.formatterModule = function (t) {
						return t || "_default";
					}),
					t
				);
			})(),
			ot = (function () {
				return function (t, e) {
					var n = this;
					(this.name = t),
						(this.printElementTypes = []),
						e.forEach(function (t) {
							n.printElementTypes.push(nt.createPrintElementType(t));
						});
				};
			})(),
			rt = (function () {
				return function (t) {
					if (((this.index = t.index), (this.name = t.name), (this.paperType = t.paperType), this.paperType)) {
						var e = s.a.instance[this.paperType];
						t.height
							? ((this.height = t.height), (this.width = t.width))
							: ((this.height = e.height), (this.width = e.width));
					} else (this.height = t.height), (this.width = t.width);

					(this.paperHeader = t.paperHeader || 0),
						(this.paperFooter = t.paperFooter || o.a.mm.toPt(this.height)),
						(this.printElements = t.printElements || []),
						(this.paperNumberLeft = t.paperNumberLeft),
						(this.paperNumberTop = t.paperNumberTop),
						(this.paperNumberDisabled = t.paperNumberDisabled),
						(this.paperNumberContinue = t.paperNumberContinue),
						(this.paperNumberFormat = t.paperNumberFormat),
						(this.panelPaperRule = t.panelPaperRule),
						(this.panelPageRule = t.panelPageRule),
						(this.rotate = t.rotate || void 0),
						(this.firstPaperFooter = t.firstPaperFooter),
						(this.evenPaperFooter = t.evenPaperFooter),
						(this.oddPaperFooter = t.oddPaperFooter),
						(this.lastPaperFooter = t.lastPaperFooter),
						(this.topOffset = t.topOffset),
						(this.fontFamily = t.fontFamily),
						(this.leftOffset = t.leftOffset),
						(this.orient = t.orient),
						(this.scale = t.scale),
						(this.watermarkOptions = t.watermarkOptions),
						(this.panelLayoutOptions = t.panelLayoutOptions);
				};
			})(),
			at = (function () {
				function t(t, e, n, i) {
					(this.bx = t),
						(this.by = e),
						(this.ex = t),
						(this.ey = e),
						(this.startX = this.minX = t),
						(this.startY = this.minY = e),
						(this.maxX = t),
						(this.maxY = e),
						(this.lastLeft = n),
						(this.lastTop = i);
				}

				return (
					(t.prototype.updateRect = function (t, e, i) {
						var scale = i.designPaper.scale || 1.0;
						this.ex = t;
						this.ey = e;
						(this.minX = this.startX / scale < t / scale ? this.startX / scale : t / scale),
							(this.minY = this.startY / scale < e / scale ? this.startY / scale : e / scale),
							(this.maxX = this.startX / scale < t / scale ? t / scale : this.startX / scale),
							(this.maxY = this.startY / scale < e / scale ? e / scale : this.startY / scale);
					}),
					(t.prototype.updatePositionByMultipleSelect = function (t, e) {
						null != t && (this.lastLeft = this.lastLeft + t),
							null != e && (this.lastTop = this.lastTop + e),
							this.target.css({
								left: this.lastLeft + "pt",
								top: this.lastTop + "pt",
							});
					}),
					t
				);
			})(),
			pt = (function () {
				function t(t, e) {
					(this.templateId = e),
						(this.index = t.index),
						(this.name = t.name),
						(this.width = t.width),
						(this.height = t.height),
						(this.paperType = t.paperType),
						(this.paperHeader = t.paperHeader),
						(this.paperFooter = t.paperFooter),
						this.initPrintElements(t.printElements),
						(this.paperNumberLeft = t.paperNumberLeft),
						(this.paperNumberTop = t.paperNumberTop),
						(this.paperNumberDisabled = t.paperNumberDisabled),
						(this.paperNumberContinue = t.paperNumberContinue == void 0 ? true : t.paperNumberContinue),
						(this.paperNumberFormat = t.paperNumberFormat),
						(this.panelPaperRule = t.panelPaperRule),
						(this.panelPageRule = t.panelPageRule),
						(this.firstPaperFooter = t.firstPaperFooter),
						(this.evenPaperFooter = t.evenPaperFooter),
						(this.oddPaperFooter = t.oddPaperFooter),
						(this.lastPaperFooter = t.lastPaperFooter),
						(this.topOffset = t.topOffset),
						(this.leftOffset = t.leftOffset),
						(this.fontFamily = t.fontFamily),
						(this.orient = t.orient),
						(this.target = this.createTarget()),
						(this.rotate = t.rotate),
						(this.scale = t.scale),
						(this.watermarkOptions = t.watermarkOptions || {}),
						(this.panelLayoutOptions = t.panelLayoutOptions || {});
				}

				return (
					(t.prototype.design = function (t) {
						var e = this;
						this.orderPrintElements(),
							(this.designPaper = this.createNewPage(0)),
							this.target.html(""),
							this.target.append(this.designPaper.getTarget()),
							this.droppablePaper(this.designPaper),
							this.designPaper.design(t),
							this.designPaper.subscribePaperBaseInfoChanged(function (t) {
								(e.paperHeader = t.paperHeader),
									(e.paperFooter = t.paperFooter),
									(e.paperNumberLeft = t.paperNumberLeft),
									(e.paperNumberTop = t.paperNumberTop),
									(e.paperNumberDisabled = t.paperNumberDisabled),
									(e.paperNumberFormat = t.paperNumberFormat);
							}),
							this.printElements.forEach(function (n) {
								e.appendDesignPrintElement(e.designPaper, n), n.design(t, e.designPaper);
							}),
							this.target.bind("click.hiprint", function (t) {
								let panelOptions = {
									panelPaperRule: e.panelPaperRule,
									panelPageRule: e.panelPageRule,
									firstPaperFooter: e.firstPaperFooter,
									evenPaperFooter: e.evenPaperFooter,
									oddPaperFooter: e.oddPaperFooter,
									lastPaperFooter: e.lastPaperFooter,
									leftOffset: e.leftOffset,
									topOffset: e.topOffset,
									panelLayoutOptions: e.panelLayoutOptions || {},
									fontFamily: e.fontFamily,
									orient: e.orient,
									paperNumberDisabled: e.paperNumberDisabled,
									paperNumberContinue: e.paperNumberContinue,
									paperNumberFormat: e.paperNumberFormat,
									watermarkOptions: e.watermarkOptions || {},
								};
								if (!p.a.instance.paperNumberContinue) {
									delete panelOptions["paperNumberContinue"];
								}
								o.a.event.trigger("BuildCustomOptionSettingEventKey_" + e.templateId, {
									options: panelOptions,
									callback: function callback(t) {
										(e.panelLayoutOptions = t.panelLayoutOptions || {}),
											(e.watermarkOptions = t.watermarkOptions || void 0),
											t.watermarkOptions && e.designPaper.createWaterMark(true, 1, t.watermarkOptions);
										(e.panelPaperRule = t.panelPaperRule),
											(e.panelPageRule = t.panelPageRule),
											(e.firstPaperFooter = t.firstPaperFooter),
											(e.evenPaperFooter = t.evenPaperFooter),
											(e.oddPaperFooter = t.oddPaperFooter),
											(e.lastPaperFooter = t.lastPaperFooter),
											(e.leftOffset = t.leftOffset),
											(e.topOffset = t.topOffset),
											(e.fontFamily = t.fontFamily),
											(e.orient = t.orient),
											(e.paperNumberDisabled = e.designPaper.paperNumberDisabled = !!t.paperNumberDisabled || void 0),
											(e.paperNumberContinue = e.designPaper.paperNumberContinue = t.paperNumberContinue),
											(e.paperNumberFormat = t.paperNumberFormat),
											(e.designPaper.paperNumberFormat = t.paperNumberFormat),
											t.paperNumberFormat &&
												(e.designPaper.paperNumberTarget = e.designPaper.createPaperNumber(
													e.designPaper.formatPaperNumber(1, 1),
													true,
												)),
											e.designPaper.setOffset(e.leftOffset, e.topOffset),
											e.css(e.target),
											e.designPaper.resetPaperNumber(e.designPaper.paperNumberTarget),
											e.designPaper.triggerOnPaperBaseInfoChanged();
									},
								});
							}),
							this.bindShortcutKeyEvent();
						this.bingPasteEvent();
						this.bindBatchMoveElement();
					}),
					(t.prototype.update = function (t) {
						try {
							var start = Date.now();
							console.log("start", start);
							var e = this;
							(this.index = t.index),
								(this.name = t.name),
								(this.width = t.width),
								(this.height = t.height),
								(this.paperType = t.paperType),
								(this.paperHeader = t.paperHeader),
								(this.paperFooter = t.paperFooter);
							(this.designPaper.width = o.a.mm.toPt(t.width)),
								(this.designPaper.height = o.a.mm.toPt(this.height)),
								(this.designPaper.paperType = this.paperType),
								(this.designPaper.paperHeader = this.paperHeader),
								(this.designPaper.paperFooter = this.paperFooter);
							(this.designPaper.mmheight = t.height), (this.designPaper.mmwidth = t.width);
							// 页眉线
							this.designPaper.headerLinetarget.css("top", (this.paperHeader || -1) + "pt"),
								0 == this.paperHeader && this.designPaper.headerLinetarget.addClass("hideheaderLinetarget");
							// 页脚线
							this.designPaper.footerLinetarget.css("top", parseInt(this.paperFooter.toString()) + "pt"),
								this.paperFooter == this.height &&
									this.designPaper.footerLinetarget.css("top", t.height - p.a.instance.paperHeightTrim + "mm");
							// 水印参数
							this.watermarkOptions = t.watermarkOptions || {};
							this.designPaper.createWaterMark(true, this.index, this.watermarkOptions);
							// 页码
							(this.paperNumberLeft = t.paperNumberLeft),
								(this.paperNumberTop = t.paperNumberTop),
								(this.paperNumberDisabled = t.paperNumberDisabled),
								(this.paperNumberContinue = t.paperNumberContinue),
								(this.paperNumberFormat = t.paperNumberFormat);
							(this.designPaper.paperNumberLeft = this.paperNumberLeft),
								(this.designPaper.paperNumberTop = this.paperNumberTop),
								(this.designPaper.paperNumberDisabled = this.paperNumberDisabled),
								(this.designPaper.paperNumberContinue = this.paperNumberContinue),
								(this.designPaper.paperNumberFormat = this.paperNumberFormat);
							this.designPaper.paperNumberTarget
								.css("top", this.paperNumberTop + "pt")
								.css("left", this.paperNumberLeft + "pt"),
								this.designPaper.resetPaperNumber(this.designPaper.paperNumberTarget);
							// 字体方向
							(this.fontFamily = t.fontFamily),
								(this.orient = t.orient),
								(this.rotate = t.rotate),
								(this.scale = t.scale);
							(this.designPaper.fontFamily = this.fontFamily),
								(this.designPaper.orient = this.orient),
								(this.designPaper.scale = e.designPaper.scale || this.scale);
							// 面板参数
							(this.panelLayoutOptions = t.panelLayoutOptions),
								(this.panelPaperRule = t.panelPaperRule),
								(this.panelPageRule = t.panelPageRule),
								(this.firstPaperFooter = t.firstPaperFooter),
								(this.evenPaperFooter = t.evenPaperFooter),
								(this.oddPaperFooter = t.oddPaperFooter),
								(this.lastPaperFooter = t.lastPaperFooter),
								(this.topOffset = t.topOffset),
								(this.leftOffset = t.leftOffset);
							this.designPaper.setFooter(
								this.firstPaperFooter,
								this.evenPaperFooter,
								this.oddPaperFooter,
								this.lastPaperFooter,
							),
								this.designPaper.setOffset(this.leftOffset, this.topOffset);
							var end = Date.now();
							console.log("更新参数 end", end);
							console.log("更新参数 time:", end - start);
							// 清空面板
							this.printElements.forEach(function (t) {
								t.designTarget && t.designTarget.length && t.designTarget.remove();
							}),
								(this.printElements = []);
							var end = Date.now();
							console.log("清空面板 end", end);
							console.log("清空面板 time:", end - start);
							// 更新面板
							this.initPrintElements(t.printElements);
							var end = Date.now();
							console.log("初始化元素 end", end);
							console.log("初始化元素 time:", end - start);
							this.printElements.forEach(function (n) {
								e.appendDesignPrintElement(e.designPaper, n), n.design(t, e.designPaper);
							});
							var end = Date.now();
							console.log("插入面板 end", end);
							console.log("插入面板 time:", end - start);
						} catch (e) {
							console.log("???????");
							console.log(e);
						}
					}),
					(t.prototype.bindShortcutKeyEvent = function () {
						var n = this;
						$(document).keydown(function (e) {
							if ("INPUT" == e.target.tagName) return;
							// ctrl/command + z 撤销 / ctrl/command + shift + z 重做
							if ((e.ctrlKey || e.metaKey) && 90 == e.keyCode) {
								if (e.shiftKey) {
									o.a.event.trigger("hiprintTemplateDataShortcutKey_" + n.templateId, "redo");
								} else {
									o.a.event.trigger("hiprintTemplateDataShortcutKey_" + n.templateId, "undo");
								}
								e.preventDefault();
							}
						});
					}),
					(t.prototype.bingPasteEvent = function () {
						var n = this;
						n.designPaper.target.attr("tabindex", "1");
						n.designPaper.target.keydown(function (e) {
							// ctrl + v / command + v
							if ("INPUT" == e.target.tagName) return;
							if ((e.ctrlKey || e.metaKey) && 86 == e.keyCode) {
								n.pasteJson(e);
								e.preventDefault();
							}
						});
					}),
					(t.prototype.pasteJson = function (e) {
						var copyArea = $("#copyArea");
						if (!copyArea.length) return;
						try {
							var json = copyArea.text();
							var objList = JSON.parse(json);
							let operationPasterPosition = null;
							let replacePosition = null;
							var left = null;
							var top = null;
							objList.forEach((obj, index) => {
								if (!obj.printElementType && !obj.templateId) return;
								// 复制使用当前模板内的元素 进行克隆
								// todo: 使用参数创建
								var n = this,
									r = obj.options,
									ele = n.getElementById(obj.id);
								if (!ele) return;
								var a = ele.clone(obj);
								if (!a) return;
								// 判断是否是在元素上进行paste
								if (index === 0) {
									operationPasterPosition = {
										x: obj.options.left,
										y: obj.options.top,
									};
									var useMouse = e.currentTarget.className != e.target.className;
									left = (!useMouse && n.mouseOffsetX && o.a.px.toPt(n.mouseOffsetX)) || (r.left += 10);
									top = (!useMouse && n.mouseOffsetY && o.a.px.toPt(n.mouseOffsetY)) || (r.top += 10);
									replacePosition = {
										x: left,
										y: top,
									};
								} else {
									const position = {
										x: obj.options.left,
										y: obj.options.top,
									};
									const incrementPosition = {
										x: position.x - operationPasterPosition.x,
										y: position.y - operationPasterPosition.y,
									};
									left = replacePosition.x + incrementPosition.x;
									top = replacePosition.y + incrementPosition.y;
								}
								a.options.setLeft(left);
								a.options.setTop(top);
								a.setTemplateId(n.templateId), a.setPanel(n);
								n.appendDesignPrintElement(n.designPaper, a, !1);
								// 在复制的地方也重新给他算轮次
								const template = s.a.instance.getPrintTemplateById(n.templateId);
								if (a.options.field && template.qtDesigner) {
									a.options.qid = template.qtDesignderFunction(a.options.field);
								}
								n.printElements.push(a), a.design(void 0, n.designPaper);
								console.log("pasteJson success");
								o.a.event.trigger("hiprintTemplateDataChanged_" + n.templateId, "复制");
								// 点击克隆出来的元素
								a.designTarget.children(".resize-panel").trigger($.Event("click"));
							});
						} catch (e) {
							console.error("pasteJson error", e);
						}
					}),
					(t.prototype.css = function (t) {
						if (this.fontFamily) t.css("fontFamily", this.fontFamily);
						else t[0].style.fontFamily = "";
					}),
					(t.prototype.getConfig = function () {
						return p.a.instance;
					}),
					(t.prototype.getHtml = function (t, e, n, i, o) {
						var r = this;
						this.orderPrintElements();
						let config = r.getConfig();
						var a,
							p = n || [],
							s = i || this,
							l = void 0;

						if (i) {
							l = p[p.length - 1];
							a = l.getPanelTarget();
							l.updateReferenceElement(
								new E.a({
									top: this.paperHeader,
									left: 0,
									height: 0,
									width: 0,
									bottomInLastPaper: l.referenceElement.bottomInLastPaper,
									beginPrintPaperIndex: p.length - 1,
									printTopInPaper: l.referenceElement.bottomInLastPaper,
									endPrintPaperIndex: p.length - 1,
								}),
							);
						} else {
							a = s.createTarget();
							l = s.createNewPage(p.length);
							p.push(l);
							a.append(l.getTarget());
						}
						this.printElements
							.filter(function (t) {
								return !t.isFixed() && !t.isHeaderOrFooter();
							})
							.forEach(function (e) {
								var n = [],
									i = p[p.length - 1];
								if (i.referenceElement.isPositionLeftOrRight(e.options.getTop())) {
									l = p[i.referenceElement.beginPrintPaperIndex];
								} else {
									l = p[i.referenceElement.endPrintPaperIndex];
								}
								n = e.getHtml(l, t);
								n.forEach(function (t, i) {
									t.referenceElement &&
										(t.referenceElement.endPrintPaperIndex = t.referenceElement.beginPrintPaperIndex + n.length - 1);
									if (i > 0) {
										if (l.index < p.length - 1) {
											l = p[l.index + 1];
										} else {
											l = s.createNewPage(p.length, l.referenceElement);
											p.push(l);
										}
										a.append(l.getTarget());
									}
									// 元素隐藏时不添加到html内
									t.target &&
										("none" != e.options.showInPage && l.append(t.target),
										l.updatePrintLine(t.printLine),
										e.onRendered(l, t.target));
									i == n.length - 1 && t.referenceElement && l.updateReferenceElement(t.referenceElement);
								});
							});
						o &&
							o.templates.forEach(function (t, e) {
								var i = t.data || {},
									o = t.options || {};
								t.template.printPanels.forEach(function (t) {
									t.getHtml(i, o, n, r);
								});
							});
						// config 是否开启页码续排
						if (config.paperNumberContinue) {
							// 面板是否页码续排
							if (r.paperNumberContinue) {
								hinnn._paperList = [...(hinnn._paperList || []), ...p];
							} else {
								hinnn._paperList = [...p];
							}
						}
						if (!i) {
							if (this.lastPaperFooter)
								p[p.length - 1].printLine > this.lastPaperFooter &&
									((l = s.createNewPage(p.length, l.referenceElement)), p.push(l), a.append(l.getTarget()));
							// 这里是处理奇偶页设置
							this.panelPaperRule &&
								("odd" == this.panelPaperRule &&
									p.length % 2 == 0 &&
									((l = s.createNewPage(p.length, l.referenceElement)), p.push(l), a.append(l.getTarget())),
								"even" == this.panelPaperRule &&
									p.length % 2 == 1 &&
									((l = s.createNewPage(p.length, l.referenceElement)), p.push(l), a.append(l.getTarget())));
							p.forEach(function (n) {
								n.updatePaperNumber(n.index + 1, p.length, e.paperNumberToggleInEven),
									r.fillPaperHeaderAndFooter(n, t, p.length),
									e &&
										(null != e.leftOffset && n.setLeftOffset(e.leftOffset),
										null != e.topOffset && n.setTopOffset(e.topOffset));
							});
							a.prepend(this.getPrintStyle());
							// config 是否开启页码续排
							if (config.paperNumberContinue) {
								hinnn._paperList.forEach(function (n, index) {
									n.updatePaperNumber(index + 1, hinnn._paperList.length);
								});
							}
						}

						return a;
					}),
					(t.prototype.resize = function (t, e, n, i) {
						(this.width = e), (this.height = n), (this.paperType = t), (this.rotate = i), this.designPaper.resize(e, n);
					}),
					(t.prototype.rotatePaper = function () {
						null == this.rotate && (this.rotate = !1),
							(this.rotate = !this.rotate),
							this.resize(this.paperType, this.height, this.width, this.rotate);
					}),
					(t.prototype.zoom = function (s, p) {
						if (p) {
							this.scale = s;
						} else {
							this.scale = void 0;
						}
						this.designPaper.zoom(s);
					}),
					(t.prototype.getTarget = function () {
						return this.target;
					}),
					(t.prototype.enable = function () {
						this.target.removeClass("hipanel-disable");
					}),
					(t.prototype.disable = function () {
						this.target.addClass("hipanel-disable");
					}),
					(t.prototype.getPanelEntity = function (t) {
						var e = [];
						return (
							this.printElements.forEach(function (n) {
								e.push(n.getPrintElementEntity(t));
							}),
							new rt({
								index: this.index,
								name: this.name || this.index + 1,
								width: this.width,
								height: this.height,
								paperType: this.paperType,
								paperHeader: this.paperHeader,
								paperFooter: this.paperFooter,
								paperNumberDisabled: !!this.paperNumberDisabled || void 0,
								paperNumberContinue: this.paperNumberContinue == void 0 ? !0 : this.paperNumberContinue,
								paperNumberFormat: this.paperNumberFormat ? this.paperNumberFormat : void 0,
								panelPaperRule: this.panelPaperRule ? this.panelPaperRule : void 0,
								panelPageRule: this.panelPageRule ? this.panelPageRule : void 0,
								paperNumberLeft: this.paperNumberLeft,
								paperNumberTop: this.paperNumberTop,
								printElements: e,
								rotate: this.rotate,
								firstPaperFooter: this.firstPaperFooter,
								evenPaperFooter: this.evenPaperFooter,
								oddPaperFooter: this.oddPaperFooter,
								lastPaperFooter: this.lastPaperFooter,
								topOffset: this.topOffset,
								fontFamily: this.fontFamily,
								orient: this.orient,
								scale: this.scale,
								watermarkOptions: this.watermarkOptions ? this.watermarkOptions : void 0,
								leftOffset: this.leftOffset,
								panelLayoutOptions: this.panelLayoutOptions || {},
							})
						);
					}),
					(t.prototype.createTarget = function () {
						var t = $('<div class="hiprint-printPanel panel-index-' + this.index + '"></div>');
						return this.css(t), t;
					}),
					(t.prototype.droppablePaper = function (t) {
						var e = this;
						t.getTarget().hidroppable({
							accept: ".ep-draggable-item",
							onDrop: function onDrop(n, i) {
								const template = s.a.instance.getPrintTemplateById(e.templateId);
								var r = s.a.instance.getDragingPrintElement(),
									a = r.printElement;
								var ptr = e.designPaper.scale || 1;
								var left = (r.left - o.a.px.toPt(e.target.children(".hiprint-printPaper").offset().left)) / ptr,
									top = (r.top - o.a.px.toPt(e.target.children(".hiprint-printPaper").offset().top)) / ptr;
								a.updateSizeAndPositionOptions(e.mathroundToporleft(left), e.mathroundToporleft(top));
								a.setTemplateId(e.templateId), a.setPanel(e), e.appendDesignPrintElement(e.designPaper, a, !0);
								// 如果说编辑器开启qtDesigner,那么就将唯一ID构建唯一ID生成逻辑代码
								if (a.options.field && template.qtDesigner) {
									a.options.qid = template.qtDesignderFunction(a.options.field);
								}
								e.printElements.push(a), a.design(void 0, t);
								o.a.event.trigger("hiprintTemplateDataChanged_" + e.templateId, "新增");
							},
						});
					}),
					(t.prototype.initPrintElements = function (t) {
						var e = this;
						(this.printElements = []),
							t &&
								t.forEach(function (n) {
									var i;

									if (
										(i = n.printElementType
											? nt.createPrintElementType(n.printElementType)
											: a.instance.getElementType(n.tid))
									) {
										var o = i.createPrintElement(n.options);
										o.setTemplateId(e.templateId), o.setPanel(e), e.printElements.push(o);
									} else console.log("miss " + JSON.stringify(t));
								});
					}),
					(t.prototype.mathroundToporleft = function (t) {
						var e = p.a.instance.movingDistance;
						return Math.round(t / e) * e;
					}),
					(t.prototype.appendDesignPrintElement = function (t, e, n) {
						e.setCurrenttemplateData(void 0);
						var i = e.getDesignTarget(t);
						i.addClass("design"), n && e.initSizeByHtml(i), t.append(i);
					}),
					(t.prototype.createNewPage = function (t, e) {
						var n = new T(
							this.templateId,
							this.index,
							this.watermarkOptions,
							this.panelPageRule,
							this.scale,
							this.width,
							this.height,
							this.paperHeader,
							this.paperFooter,
							this.paperNumberLeft,
							this.paperNumberTop,
							this.paperNumberDisabled,
							this.paperNumberContinue,
							this.paperNumberFormat,
							t,
							e,
						);
						return (
							n.setFooter(this.firstPaperFooter, this.evenPaperFooter, this.oddPaperFooter, this.lastPaperFooter),
							n.setOffset(this.leftOffset, this.topOffset),
							n
						);
					}),
					(t.prototype.orderPrintElements = function () {
						(this.printElements = o.a.orderBy(this.printElements, function (t) {
							return t.options.getLeft();
						})),
							(this.printElements = o.a.orderBy(this.printElements, function (t) {
								return t.options.getTop();
							}));
					}),
					(t.prototype.fillPaperHeaderAndFooter = function (t, e, n) {
						this.printElements
							.filter(function (t) {
								return t.isFixed() || t.isHeaderOrFooter();
							})
							.forEach(function (i) {
								if ((i.isFixed(), i.showInPage(t.index, n))) {
									var o = i.getHtml(t, e);
									o.length && t.append(o[0].target);
								}
							});
					}),
					(t.prototype.clear = function () {
						this.printElements.forEach(function (t) {
							t.designTarget && t.designTarget.length && t.designTarget.remove();
						}),
							(this.printElements = []);
						o.a.event.trigger("hiprintTemplateDataChanged_" + this.templateId, "清空");
					}),
					(t.prototype.insertPrintElementToPanel = function (t) {
						var e = this.getPrintElementTypeByEntity(t);

						if (e) {
							var n = e.createPrintElement(t.options);
							n.setTemplateId(this.templateId), n.setPanel(this), this.printElements.push(n);
						}
					}),
					(t.prototype.addPrintText = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "text"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintHtml = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "html"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintTable = function (t) {
						if (
							((t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "table"),
							t.options && t.options.columns)
						) {
							var e = $.extend({}, t.options.columns);
							(t.printElementType.columns = e.columns), (e.columns = void 0);
						}

						this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintImage = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "image"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintLongText = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "longText"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintVline = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "vline"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintHline = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "hline"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintRect = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "rect"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.addPrintOval = function (t) {
						(t.printElementType = t.printElementType || {}),
							(t.printElementType.type = "oval"),
							this.insertPrintElementToPanel(t);
					}),
					(t.prototype.getPrintElementTypeByEntity = function (t) {
						var e;
						return (
							(e = t.tid ? a.instance.getElementType(t.tid) : nt.createPrintElementType(t.printElementType)) ||
								console.log("miss " + JSON.stringify(t)),
							e
						);
					}),
					(t.prototype.getPrintStyle = function () {
						let layoutStyle = "";
						if (this.panelLayoutOptions && this.panelLayoutOptions["layoutType"] === "row") {
							layoutStyle = `
            <style>
            .hiprint-printTemplate{
              margin: -${(Number(this.panelLayoutOptions["layoutRowGap"]) || 0) / 2}mm -${(Number(this.panelLayoutOptions["layoutColumnGap"]) || 0) / 2}mm;
            }
              .hiprint-printTemplate .hiprint-printPanel {
                display:inline-block;
                padding: ${(Number(this.panelLayoutOptions["layoutRowGap"]) || 0) / 2}mm ${(Number(this.panelLayoutOptions["layoutColumnGap"]) || 0) / 2}mm;
              }
            </style>
          `;
						}
						return (
							layoutStyle +
							" <style printStyle>\n        @page\n        {\n             border:0;\n             padding:0cm;\n             margin:0cm;\n             " +
							this.getPrintSizeStyle() +
							"\n        }\n        </style>\n"
						);
					}),
					(t.prototype.getPrintSizeStyle = function () {
						return this.paperType
							? "size:" + this.paperType + " " + (this.height > this.width ? "portrait" : "landscape") + ";"
							: "size: " +
									this.width +
									"mm " +
									this.height +
									"mm " +
									(this.orient ? (1 == this.orient ? "portrait" : "landscape") : "") +
									";";
					}),
					(t.prototype.deletePrintElement = function (t) {
						var e = this;
						this.printElements.filter(function (n, i) {
							n.id == t.id && (t.delete(), e.printElements.splice(i, 1));
						});
					}),
					(t.prototype.getElementByTid = function (t) {
						return this.printElements
							.filter(function (e) {
								return e.printElementType.tid === t;
							})
							.map(function (t, e) {
								return t;
							});
					}),
					(t.prototype.getElementByName = function (t) {
						return this.printElements
							.filter(function (e) {
								return e.options.name === t;
							})
							.map(function (t, e) {
								return t;
							});
					}),
					(t.prototype.getElementById = function (t) {
						return this.printElements.find(function (e) {
							return e.id === t;
						});
					}),
					(t.prototype.getFieldsInPanel = function () {
						var t = [];
						return (
							this.printElements.forEach(function (e) {
								e.options && e.options.field
									? t.push(e.options.field)
									: e.printElementType.field && t.push(e.printElementType.field);
							}),
							t
						);
					}),
					(t.prototype.getTestData = function () {
						var t = {};
						return (
							this.printElements.forEach(function (e) {
								if ("table" != e.printElementType.type) {
									e.options && e.options.field
										? (t[e.options.field] = e.options.testData)
										: e.printElementType.field
											? (t[e.printElementType.field] = e.printElementType.data || e.options.testData)
											: void 0;
								}
							}),
							t
						);
					}),
					(t.prototype.bindBatchMoveElement = function () {
						var t = this;
						this.designPaper
							.getTarget()
							.on("mousemove", function (e) {
								if (
									e.target.className &&
									_typeof(e.target.className) == "string" &&
									e.target.className.includes("editing")
								) {
									return;
								}
								if (e.currentTarget.className == t.designPaper.target[0].className) {
									(t.mouseOffsetX = e.offsetX), (t.mouseOffsetY = e.offsetY);
								} else {
									t.mouseOffsetX = t.mouseOffsetY = void 0;
								}
								s.a.instance.draging ||
									(1 === e.buttons &&
										s.a.instance.rectDraging &&
										t.mouseRect &&
										(t.mouseRect.updateRect(e.pageX, e.pageY, t), t.updateRectPanel(t.mouseRect)));
							})
							.on("mousedown", function (e) {
								s.a.instance.rectDraging = true;
								if (
									e.target.className &&
									_typeof(e.target.className) == "string" &&
									e.target.className.includes("editing")
								) {
									return;
								}
								s.a.instance.draging ||
									(t.mouseRect && t.mouseRect.target && t.mouseRect.target.remove(),
									1 === e.buttons &&
										_typeof(e.target.className) == "string" &&
										e.target.className.includes("hiprint-printPaper hidroppable design") &&
										(t.mouseRect = new at(
											e.pageX,
											e.pageY,
											s.a.instance.dragLengthCNum(
												e.pageX - t.designPaper.getTarget().offset().left,
												p.a.instance.movingDistance,
											),
											s.a.instance.dragLengthCNum(
												e.pageY - t.designPaper.getTarget().offset().top,
												p.a.instance.movingDistance,
											),
										)));
							})
							.on("mouseup", function (e) {
								s.a.instance.rectDraging = false;
							});
					}),
					(t.prototype.getElementInRect = function (t) {
						var e = [];
						return (
							this.printElements
								.filter(function (n) {
									return n.options.draggable !== false;
								})
								.forEach(function (n) {
									n.inRect(t) && e.push(n);
								}),
							e
						);
					}),
					(t.prototype.updateRectPanel = function (t) {
						var e = this,
							n = this.designPaper.getTarget();
						var ptr = this.designPaper.scale || 1;
						this.mouseRect.target ||
							((this.mouseRect.target = $(
								'<div tabindex="1" class="mouseRect" style="z-index:2;position: absolute;opacity:0.2;border: 1px dashed #000;background-color:#31676f;"><span></span></div>',
							)),
							n.find(".hiprint-printPaper-content").append(this.mouseRect.target),
							this.bingKeyboardMoveEvent(this.mouseRect.target),
							this.mouseRect.target.hidraggable({
								onDrag: function onDrag(t, n, i) {
									(e.mouseRect.lastLeft = e.mouseRect.lastLeft
										? o.a.px.toPt(e.mouseRect.target[0].offsetLeft)
										: n / ptr),
										(e.mouseRect.lastTop = e.mouseRect.lastTop
											? o.a.px.toPt(e.mouseRect.target[0].offsetTop)
											: i / ptr),
										(e.mouseRect.mouseRectSelectedElement || []).forEach(function (t) {
											t.updatePositionByMultipleSelect(n - e.mouseRect.lastLeft, i - e.mouseRect.lastTop);
										}),
										(e.mouseRect.lastLeft = n / ptr),
										(e.mouseRect.lastTop = i / ptr),
										(s.a.instance.changed = !0);
								},
								moveUnit: "pt",
								minMove: p.a.instance.movingDistance,
								onBeforeDrag: function onBeforeDrag(t) {
									e.mouseRect.target.focus(),
										(s.a.instance.draging = !0),
										e.mouseRect.mouseRectSelectedElement ||
											(e.mouseRect.mouseRectSelectedElement = e.getElementInRect(e.mouseRect));
									e.mouseRect.target.css({
										transform: "unset",
									});
								},
								getScale: function getScale() {
									return e.designPaper.scale || 1;
								},
								onStopDrag: function onStopDrag(t) {
									if (s.a.instance.changed) o.a.event.trigger("hiprintTemplateDataChanged_" + n.templateId, "框选移动");
									s.a.instance.draging = !1;
									s.a.instance.changed = !1;
								},
							}));
						if (t.ex >= t.bx && t.ey >= t.by) {
							// 终点大于起点
							this.mouseRect.target.css({
								height: t.maxY - t.minY + "px",
								width: t.maxX - t.minX + "px",
								left: t.lastLeft / ptr + "pt",
								top: t.lastTop / ptr + "pt",
								transform: "unset",
							});
						} else if (t.ex < t.bx && t.ey < t.by) {
							this.mouseRect.target.css({
								height: t.maxY - t.minY + "px",
								width: t.maxX - t.minX + "px",
								left: t.lastLeft / ptr + "pt",
								top: t.lastTop / ptr + "pt",
								transform: "rotate(180deg)",
								"transform-origin": "0 0",
							});
							// 左下角
						} else if (t.ex < t.bx && t.ey > t.by) {
							this.mouseRect.target.css({
								height: t.maxY - t.minY + "px",
								width: t.maxX - t.minX + "px",
								left: t.lastLeft / ptr + "pt",
								top: t.lastTop / ptr + "pt",
								transform: "rotateY(180deg)",
								"transform-origin": "0 0",
							});
						} else if (t.ex > t.bx && t.ey < t.by) {
							this.mouseRect.target.css({
								height: t.maxY - t.minY + "px",
								width: t.maxX - t.minX + "px",
								left: t.lastLeft / ptr + "pt",
								top: t.lastTop / ptr + "pt",
								transform: "rotateX(180deg)",
								"transform-origin": "0 0",
							});
						}
						t.target.focus();
					}),
					(t.prototype.bingKeyboardMoveEvent = function (t) {
						var e = this;
						t.attr("tabindex", "1"),
							t.keydown(function (t) {
								e.mouseRect.mouseRectSelectedElement ||
									(e.mouseRect.mouseRectSelectedElement = e.getElementInRect(e.mouseRect));
								var n = e.mouseRect.mouseRectSelectedElement || [];

								switch (t.keyCode) {
									case 37:
										e.mouseRect.updatePositionByMultipleSelect(0 - p.a.instance.movingDistance, 0),
											n.forEach(function (t) {
												t.updatePositionByMultipleSelect(0 - p.a.instance.movingDistance, 0);
											}),
											t.preventDefault();
										break;

									case 38:
										e.mouseRect.updatePositionByMultipleSelect(0, 0 - p.a.instance.movingDistance),
											n.forEach(function (t) {
												t.updatePositionByMultipleSelect(0, 0 - p.a.instance.movingDistance);
											}),
											t.preventDefault();
										break;

									case 39:
										e.mouseRect.updatePositionByMultipleSelect(p.a.instance.movingDistance, 0),
											n.forEach(function (t) {
												t.updatePositionByMultipleSelect(p.a.instance.movingDistance, 0);
											}),
											t.preventDefault();
										break;

									case 40:
										e.mouseRect.updatePositionByMultipleSelect(0, p.a.instance.movingDistance),
											n.forEach(function (t) {
												t.updatePositionByMultipleSelect(0, p.a.instance.movingDistance);
											}),
											t.preventDefault();
								}
								if ([37, 38, 39, 40].includes(t.keyCode)) {
									o.a.event.trigger("hiprintTemplateDataChanged_" + e.templateId, "框选移动");
								}
							});
					}),
					t
				);
			})(),
			st = (function () {
				return function (t) {
					if (t)
						if (t.panels) {
							this.panels = [];

							for (var e = 0; e < t.panels.length; e++) {
								this.panels.push(new rt(t.panels[e]));
							}
						} else this.panels = [];
				};
			})(),
			lt = n(9),
			ut = (function () {
				function t(t, e) {
					var n = this;
					(this.printElementOptionSettingPanel = {}),
						(this.printTemplate = t),
						(this.settingContainer = $(e)),
						o.a.event.on(t.getPrintElementSelectEventKey(), function (t) {
							n.buildSetting(t);
						}),
						o.a.event.on(t.getBuildCustomOptionSettingEventKey(), function (t) {
							n.buildSettingByCustomOptions(t);
						}),
						o.a.event.on("clearSettingContainer", function () {
							n.clearSettingContainer();
						});
				}

				return (
					(t.prototype.init = function () {}),
					(t.prototype.clearSettingContainer = function () {
						this.clearLastPrintElement(), this.settingContainer.html("");
					}),
					(t.prototype.clearLastPrintElement = function () {
						if (this.lastPrintElement) {
							if (this.lastPrintElement._editing) {
								this.lastPrintElement.updateByContent(true);
							}
							if (this.lastPrintElement._printElementOptionTabs) {
								this.lastPrintElement._printElementOptionTabs.forEach(function (t) {
									t.list &&
										t.list.forEach(function (e) {
											e.destroy();
										});
								});
							}
							if (this.lastPrintElement._printElementOptionItems) {
								this.lastPrintElement._printElementOptionItems.forEach(function (t) {
									t.destroy();
								});
							}
						}
						this.lastPrintElement = void 0;
					}),
					(t.prototype.buildSetting = function (t) {
						var e = this,
							n = this,
							i = t.printElement,
							o = t.customOptionsInput;
						var tabs = i.getPrintElementOptionTabs();
						e.clearSettingContainer();
						var r;
						if (tabs.length) {
							r = $('<div class="prop-tabs"><ul class="prop-tab-items"></ul></div>');
							tabs.forEach(function (tab) {
								var item = $('<li class="prop-tab-item"><span class="tab-title">' + i18n.__(tab.name) + "</span></li>");
								r.find(".prop-tab-items").append(item);
								var options = $('<div class="hiprint-option-items" data-title="' + i18n.__(tab.name) + '"></div>');
								tab.list.forEach(function (t) {
									t.submit = function (t) {
										i.submitOption();
									};
									var n = t.createTarget(i, i.options, i.printElementType);
									(e.printElementOptionSettingPanel[t.name] = n), options.append(n);
									// 貌似只有这两个才需要多个参数
									if (["columns", "dataType"].includes(t.name)) {
										t.setValue(i.options[t.name], i.options, i.printElementType);
									} else {
										// 传入所有参数
										if (["coordinate", "widthHeight"].includes(t.name)) {
											t.setValue(i.options, i);
										} else {
											// options 没有就取 printElementType内的 (如 table 的 footerFormatter)
											t.setValue(i.options[t.name] || i.printElementType[t.name]);
										}
									}
									n.find("textarea").bind("dblclick.textarea", function (event) {
										if (!$(this).val()) {
											var placeholder = event.target.placeholder || "";
											$(this).val(placeholder);
										}
									});
								});
								if (tab.list.length == 0 && o && o.length) {
									o.forEach(function (t) {
										var n2 = t.callback;
										t.callback = function (t) {
											n2 && n2(t);
										};
										var tableColumn = t.optionItems;
										t.title &&
											options.append(
												'<div class="hiprint-option-item hiprint-option-item-row">\n            <div class="hiprint-option-item-label hiprint-option-title">\n              ' +
													t.title +
													"\n            </div>\n        </div>",
											);
										tableColumn.forEach(function (e) {
											(e.submit = function (e) {
												t.callback(n.getValueByOptionItems(tableColumn));
											}),
												options.append(e.createTarget(n.printTemplate, t.options, void 0)),
												e.setValue(t.options[e.name], t.options, void 0);
										});
										options.find(".auto-submit").change(function () {
											t.callback(n.getValueByOptionItems(tableColumn));
										});
										options.find(".auto-submit:input").bind("keydown.submitOption", function (e) {
											13 === e.keyCode && t.callback(n.getValueByOptionItems(tableColumn));
										});
										options.find("textarea").bind("dblclick.textarea", function (event) {
											if (!$(this).val()) {
												var placeholder = event.target.placeholder || "";
												$(this).val(placeholder);
											}
										});
									});
								}
								r.append(options);
							});
						} else {
							r = $('<div class="hiprint-option-items"></div>');
							i.getPrintElementOptionItems().forEach(function (t) {
								t.submit = function (t) {
									i.submitOption();
								};

								var n = t.createTarget(i, i.options, i.printElementType);
								(e.printElementOptionSettingPanel[t.name] = n), r.append(n);
								// 貌似只有这两个才需要多个参数
								if (["columns", "dataType"].includes(t.name)) {
									t.setValue(i.options[t.name], i.options, i.printElementType);
								} else {
									// 传入所有参数
									if (["coordinate", "widthHeight"].includes(t.name)) {
										t.setValue(i.options, i);
									} else {
										// options 没有就取 printElementType内的 (如 table 的 footerFormatter)
										t.setValue(i.options[t.name] || i.printElementType[t.name]);
									}
								}
							});
						}
						var a = $(
								`<button class="hiprint-option-item-settingBtn hiprint-option-item-submitBtn"\n        type="button">${i18n.__("确定")}</button>`,
							),
							p = $(
								`<button  class="hiprint-option-item-settingBtn hiprint-option-item-deleteBtn"\n        type="button">${i18n.__("删除")}</button>`,
							);
						r.append(a);
						i.options.draggable != false && r.append(p); // draggable 为 false 时不显示参数面板 删除 按钮
						if (tabs.length) {
							r.on("click", ".prop-tab-item", function () {
								var $li = $(this);
								var index = $li.index();
								// 上次点击tab的index
								e.settingContainer.data("last-index", index);
								$li.addClass("active");
								$li.siblings().removeClass("active");
								var options = r.find(".hiprint-option-items:eq(" + index + ")");
								options.addClass("active");
								options.siblings().removeClass("active");
							});
							var lastIndex = +(e.settingContainer.data("last-index") || 0);
							if (lastIndex >= tabs.length) {
								lastIndex = 0;
							}
							r.find(".prop-tab-item:eq(" + lastIndex + ")").click();
						}
						a.bind("click.submitOption", function () {
							i.submitOption();
						}),
							p.bind("click.deleteBtn", function () {
								hinnn.event.trigger("hiprintTemplateDataChanged_" + i.templateId, "删除");
								n.printTemplate.deletePrintElement(i);
								e.clearSettingContainer();
							}),
							r.find(".auto-submit").change(function (t) {
								i.submitOption();
							}),
							r.find(".auto-submit:input").bind("keydown.submitOption", function (t) {
								13 == t.keyCode && i.submitOption();
							}),
							this.settingContainer.append(r),
							tabs.length < 1 &&
								o &&
								o.forEach(function (t) {
									var n = t.callback;
									(t.callback = function (t) {
										n && (n(t), i.submitOption());
									}),
										e.buildSettingByCustomOptions(t, e.settingContainer);
								}),
							(this.lastPrintElement = i);
					}),
					(t.prototype.buildSettingByCustomOptions = function (t, e) {
						var n = this;
						this.clearLastPrintElement();
						var i = e || this.settingContainer;
						e || this.settingContainer.html("");
						var o = [],
							supportOptions = p.a.instance.panel.supportOptions
								.filter(function (t) {
									return !t.hidden;
								})
								.map(function (e) {
									return e.name;
								});
						t.optionItems
							? (o = t.optionItems)
							: Object.keys(t.options)
									.filter(function (t) {
										return supportOptions.includes(t);
									})
									.forEach(function (t) {
										var e = lt.a.getItem(t);
										e && o.push(e);
									});
						var r = $('<div class="hiprint-option-items"></div>');
						t.title &&
							r.append(
								'<div class="hiprint-option-item hiprint-option-item-row">\n            <div class="hiprint-option-item-label hiprint-option-title">\n              ' +
									t.title +
									"\n            </div>\n        </div>",
							),
							o.forEach(function (e) {
								(e.submit = function (e) {
									t.callback(n.getValueByOptionItems(o));
								}),
									r.append(e.createTarget(n.printTemplate, t.options, void 0)),
									e.setValue(t.options[e.name], t.options, void 0);
							});
						var a = $(
							`<button class="hiprint-option-item-settingBtn hiprint-option-item-submitBtn"\n        type="button">${i18n.__("确定")}</button>`,
						);
						r.append(a),
							a.bind("click.submitOption", function () {
								t.callback(n.getValueByOptionItems(o));
							}),
							r.find(".auto-submit").change(function (e) {
								t.callback(n.getValueByOptionItems(o));
							}),
							r.find(".auto-submit:input").bind("keydown.submitOption", function (e) {
								13 == e.keyCode && t.callback(n.getValueByOptionItems(o));
							}),
							i.append(r);
					}),
					(t.prototype.getValueByOptionItems = function (t) {
						var e = {};
						return (
							t.forEach(function (t) {
								e[t.name] = t.getValue();
							}),
							e
						);
					}),
					t
				);
			})(),
			dt = (function () {
				function t(t, e) {
					(this.paginationContainer = t),
						(this.jqPaginationContainer = $(this.paginationContainer)),
						(this.template = e);
				}

				return (
					(t.prototype.buildPagination = function (t) {
						var e = this.template.getPaneltotal(),
							n = this;
						this.jqPaginationContainer.html("");

						for (
							var i = $('<ul class="hiprint-pagination"></ul>'),
								o = function o() {
									var t = r,
										name = n.template.printPanels[t].name || t + 1,
										e = $("<li><span>" + name + '</span><a href="javascript:void(0);">x</a></li>');
									e.find("span").click(function () {
										n.template.selectPanel(t),
											e.siblings().removeClass("selected"),
											$(this).parent("li").addClass("selected");
									}),
										e.find("a").click(function () {
											n.template.deletePanel(t), n.buildPagination();
										}),
										i.append(e);
								},
								r = 0;
							r < e;
							r++
						) {
							o();
						}

						var a = $("<li><span>+</span></li>");
						i.append(a),
							this.jqPaginationContainer.append(i),
							a.click(function () {
								var createPanel = function (t) {
									n.template.addPrintPanel(t || void 0, !0), n.buildPagination();
									$(".hiprint-pagination li").removeClass("selected");
									$(".hiprint-pagination li:nth-last-child(2)").addClass("selected");
								};
								if (n.template.onPanelAddClick) {
									var panel = {
										index: n.template.printPanels.length,
										paperType: "A4",
									};
									n.template.onPanelAddClick(panel, createPanel);
								} else {
									createPanel();
								}
							});
					}),
					(t.prototype.selectPanel = function (idx) {
						var i = idx || this.template.editingPanel.index;
						var li = $(".hiprint-pagination li:nth(" + i + ")");
						if (li.length) {
							li.siblings().removeClass("selected");
							li.addClass("selected");
						}
						hinnn.event.trigger("onSelectPanel", this.template.editingPanel, i, li);
					}),
					t
				);
			})(),
			ct = (function () {
				function t(t) {
					var e = this;
					(this.tempimageBase64 = {}),
						(this.id = s.a.instance.guid()),
						s.a.instance.setPrintTemplateById(this.id, this);
					var n = t || {};
					this.printPanels = [];
					this.dataMode = n.dataMode || 1;
					this.history = n.history != void 0 ? n.history : !0;
					this.willOutOfBounds = n.willOutOfBounds != void 0 ? n.willOutOfBounds : !0;
					this.onDataChanged = n.onDataChanged;
					this.onUpdateError = n.onUpdateError;
					this.lastJson = n.template || {};
					this.historyList = [{ id: s.a.instance.guid(), type: "初始", json: this.lastJson }];
					this.historyPos = 0;
					this.defaultPanelName = n.defaultPanelName;
					this.designOptions = {};
					this.qtDesigner = n.qtDesigner != void 0 ? n.qtDesigner : !0;
					this.qtDesignerMap = {};
					this.qtDesignderFunction = function (field) {
						this.qtDesignerMap = {};
						const fieldTitle = field.split("_")[0];
						for (const item of this.editingPanel.printElements) {
							if (item.options.field === void 0) {
								continue;
							}
							const renderKey = item.options.field.split("_")[0];
							if (this.qtDesignerMap[renderKey] === void 0) {
								this.qtDesignerMap[renderKey] = 1;
							} else {
								this.qtDesignerMap[renderKey] += 1;
							}
						}
						if (this.qtDesignerMap[fieldTitle] === 0 || this.qtDesignerMap[fieldTitle] === void 0) {
							return fieldTitle;
						} else {
							return fieldTitle + "_" + this.qtDesignerMap[fieldTitle];
						}
					};
					var i = new st(n.template || []);
					n.template &&
						i.panels.forEach(function (t) {
							e.printPanels.push(new pt(t, e.id));
						}),
						n.fontList && (this.fontList = n.fontList),
						n.fields && (this.fields = n.fields),
						n.onImageChooseClick && (this.onImageChooseClick = n.onImageChooseClick),
						n.onPanelAddClick && (this.onPanelAddClick = n.onPanelAddClick),
						n.settingContainer && new ut(this, n.settingContainer),
						n.paginationContainer &&
							((this.printPaginationCreator = new dt(n.paginationContainer, this)),
							this.printPaginationCreator.buildPagination()),
						this.initAutoSave();
				}

				return (
					(t.prototype.design = function (t, e) {
						var n = this;

						if ((e || (e = {}), 0 == this.printPanels.length)) {
							var i = this.createDefaultPanel();
							this.printPanels.push(i);
						}

						if (!t) throw new Error("options.container can not be empty");
						n.designOptions = e;
						this.createContainer(t),
							this.printPanels.forEach(function (t, i) {
								n.container.append(t.getTarget()), i > 0 && t.disable(), t.design(e);
							}),
							this.selectPanel(0);
					}),
					(t.prototype.getSimpleHtml = function (t, e) {
						var n = this;
						e || (e = {});
						var i = $('<div class="hiprint-printTemplate"></div>');
						t && t.constructor === Array
							? t.forEach(function (data, dataIndex) {
									data &&
										n.printPanels.forEach(function (n, o) {
											i.append(n.getHtml(data, e));
											// 批量打印 续排页码
											if (dataIndex == t.length - 1) {
												delete hinnn._paperList;
											}
										});
								})
							: this.printPanels.forEach(function (panel, panelIndex) {
									i.append(panel.getHtml(t, e));
									// 多面板打印 续排页码
									if (panelIndex == n.printPanels.length - 1) {
										delete hinnn._paperList;
									}
								});
						return e && e.imgToBase64 && this.transformImg(i.find("img")), i;
					}),
					(t.prototype.getHtml = function (t, e) {
						return t || (t = {}), this.getSimpleHtml(t, e);
					}),
					(t.prototype.getJointHtml = function (t, e, n) {
						var i = $('<div class="hiprint-printTemplate"></div>'),
							o = [];
						return (
							this.printPanels.forEach(function (r, a) {
								i.append(r.getHtml(t, e, o, void 0, n));
							}),
							i
						);
					}),
					(t.prototype.setPaper = function (t, e) {
						if (/^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(t))
							this.editingPanel.resize(void 0, parseFloat(t), parseFloat(e), !1);
						else {
							var n = s.a.instance[t];
							if (!n) throw new Error("not found pagetype:" + (t || ""));
							this.editingPanel.resize(t, n.width, n.height, !1);
						}
					}),
					(t.prototype.rotatePaper = function () {
						this.editingPanel.rotatePaper();
					}),
					(t.prototype.zoom = function (s, p) {
						this.editingPanel.zoom(s, p);
					}),
					(t.prototype.addPrintPanel = function (t, e) {
						var n = t ? new pt(new rt(t), this.id) : this.createDefaultPanel();
						return (
							t && (t.index = this.printPanels.length),
							e && (this.container.append(n.getTarget()), n.design(this.designOptions)),
							this.printPanels.push(n),
							e && this.selectPanel(n.index),
							n
						);
					}),
					(t.prototype.selectPanel = function (t) {
						var e = this;
						if (t > e.printPanels.length - 1) t = e.printPanels.length - 1;
						this.printPanels.forEach(function (n, i) {
							t == i
								? (n.enable(),
									(e.editingPanel = n),
									e.printPaginationCreator && e.printPaginationCreator.selectPanel(t))
								: n.disable();
						});
					}),
					(t.prototype.deletePanel = function (t) {
						this.printPanels[t].clear(), this.printPanels[t].getTarget().remove(), this.printPanels.splice(t, 1);
					}),
					(t.prototype.getPaneltotal = function () {
						return this.printPanels.length;
					}),
					(t.prototype.createDefaultPanel = function () {
						return new pt(
							new rt({
								index: this.printPanels.length,
								name: this.defaultPanelName,
								paperType: "A4",
							}),
							this.id,
						);
					}),
					(t.prototype.createContainer = function (t) {
						t
							? ((this.container = $(t)), this.container.addClass("hiprint-printTemplate"))
							: (this.container = $('<div class="hiprint-printTemplate"></div>'));
					}),
					(t.prototype.getJsonTid = function () {
						var t = [];
						return (
							this.printPanels.forEach(function (e) {
								e.getPanelEntity().printElements.length && t.push(e.getPanelEntity());
							}),
							new st({
								panels: t,
							})
						);
					}),
					(t.prototype.getJson = function () {
						var t = [];
						return (
							this.printPanels.forEach(function (e) {
								t.push(e.getPanelEntity(!0));
							}),
							new st({
								panels: t,
							})
						);
					}),
					(t.prototype.undo = function (t) {
						o.a.event.trigger("hiprintTemplateDataShortcutKey_" + this.id, "undo");
					}),
					(t.prototype.redo = function (t) {
						o.a.event.trigger("hiprintTemplateDataShortcutKey_" + this.id, "redo");
					}),
					(t.prototype.getPrintElementSelectEventKey = function () {
						return "PrintElementSelectEventKey_" + this.id;
					}),
					(t.prototype.getBuildCustomOptionSettingEventKey = function () {
						return "BuildCustomOptionSettingEventKey_" + this.id;
					}),
					(t.prototype.clear = function () {
						this.printPanels.forEach(function (t) {
							if ((t.clear(), t.index > 0)) {
								var e = t.getTarget();
								e && e.length && e.remove();
							}
						}),
							(this.printPanels = [this.printPanels[0]]),
							this.printPaginationCreator && this.printPaginationCreator.buildPagination();
					}),
					(t.prototype.getPaperType = function (t) {
						return null == t && (t = 0), this.printPanels[0].paperType;
					}),
					(t.prototype.getOrient = function (t) {
						return null == t && (t = 0), this.printPanels[t].height > this.printPanels[t].width ? 1 : 2;
					}),
					(t.prototype.getPrintStyle = function (t) {
						return this.printPanels[t].getPrintStyle();
					}),
					(t.prototype.print = function (t, e, o) {
						t || (t = {}), this.getHtml(t, e).hiwprint(o);
					}),
					(t.prototype.print2 = function (t, e) {
						if ((t || (t = {}), e || (e = {}), this.clientIsOpened())) {
							var n = this,
								i = 0,
								o = {},
								r = $('link[media=print][href*="print-lock.css"]'),
								css = "";
							if (e.styleHandler) {
								css += e.styleHandler();
							}
							if (r.length <= 0) {
								throw new Error('请在 入口文件(index.html) 中引入 print-lock.css. 注意: link[media="print"]');
								return;
							}
							r.each(function (a, p) {
								var s = new XMLHttpRequest();
								s.open("GET", $(p).attr("href")),
									(s.onreadystatechange = function () {
										if (
											4 === s.readyState &&
											200 === s.status &&
											((o[a + ""] = '<style rel="stylesheet" type="text/css">' + s.responseText + "</style>"),
											++i == r.length)
										) {
											for (var p = "", l = 0; l < r.length; l++) {
												p += o[l + ""];
											}
											if (css) p = css + p;
											n.sentToClient(p, t, e);
										}
									}),
									s.send();
							});
						} else alert(`${i18n.__("连接客户端失败")}`);
					}),
					(t.prototype.imageToBase64 = function (t) {
						var e = $(t).attr("src");
						if (-1 == e.indexOf("base64"))
							try {
								if (!this.tempimageBase64[e]) {
									var n = document.createElement("canvas"),
										i = new Image();
									(i.src = t.attr("src")),
										(n.width = i.width),
										(n.height = i.height),
										n.getContext("2d").drawImage(i, 0, 0),
										e && (this.tempimageBase64[e] = n.toDataURL("image/png"));
								}

								t.attr("src", this.tempimageBase64[e]);
							} catch (e) {
								try {
									this.xhrLoadImage(t);
								} catch (t) {
									console.log(t);
								}
							}
					}),
					(t.prototype.xhrLoadImage = function (t) {}),
					(t.prototype.sentToClient = function (t, e, n) {
						e || (e = {});
						var i = $.extend({}, n || {});
						i.imgToBase64 = !0;
						var o = t + this.getHtml(e, i)[0].outerHTML;
						(i.id = s.a.instance.guid()), (i.html = o), (i.templateId = this.id), hiwebSocket.send(i);
					}),
					(t.prototype.printByHtml = function (t) {
						$(t).hiwprint();
					}),
					(t.prototype.printByHtml2 = function (t, e) {
						if ((e || (e = {}), this.clientIsOpened())) {
							var n = this,
								i = 0,
								o = {},
								r = $('link[media=print][href*="print-lock.css"]');
							if (r.length <= 0) {
								throw new Error('请在 入口文件(index.html) 中引入 print-lock.css. 注意: link[media="print"]');
								return;
							}
							r.each(function (a, p) {
								var l = new XMLHttpRequest();
								l.open("GET", $(p).attr("href")),
									(l.onreadystatechange = function () {
										if (
											4 === l.readyState &&
											200 === l.status &&
											((o[a + ""] = '<style rel="stylesheet" type="text/css">' + l.responseText + "</style>"),
											++i == r.length)
										) {
											for (var p = "", u = 0; u < r.length; u++) {
												p += o[u + ""];
											}

											var d = p + $(t)[0].outerHTML,
												c = $.extend({}, e || {});
											(c.id = s.a.instance.guid()), (c.html = d), (c.templateId = n.id), hiwebSocket.send(c);
										}
									}),
									l.send();
							});
						} else alert(`${i18n.__("连接客户端失败")}`);
					}),
					(t.prototype.deletePrintElement = function (t) {
						this.printPanels.forEach(function (e) {
							e.deletePrintElement(t);
						});
					}),
					(t.prototype.transformImg = function (t) {
						var e = this;
						t.map(function (t, n) {
							e.imageToBase64($(n));
						});
					}),
					(t.prototype.toPdf = function (t, e, options) {
						var i = this;
						var dtd = $.Deferred();
						var isDownload = true;
						if (this.printPanels.length) {
							var r = o.a.mm.toPt(this.printPanels[0].width),
								a = o.a.mm.toPt(this.printPanels[0].height),
								p = $.extend(
									{
										scale: 2,
										width: o.a.pt.toPx(r),
										x: 0,
										y: 0,
										useCORS: !0,
									},
									options || {},
								),
								s = new jsPDF({
									orientation: 1 == this.getOrient(0) ? "portrait" : "landscape",
									unit: "pt",
									format: this.printPanels[0].paperType ? this.printPanels[0].paperType.toLocaleLowerCase() : [r, a],
								}),
								l = this.getHtml(t, options);
							if (options && undefined != options.isDownload) {
								isDownload = options.isDownload;
							}
							this.createTempContainer();
							var u = this.getTempContainer();
							this.svg2canvas(l), u.html(l[0]);
							var d = u.find(".hiprint-printPanel .hiprint-printPaper").length;
							$(l).css("position:fixed"),
								html2canvas(l[0], p).then(function (t) {
									var n = t.getContext("2d");
									(n.mozImageSmoothingEnabled = !1),
										(n.webkitImageSmoothingEnabled = !1),
										(n.msImageSmoothingEnabled = !1),
										(n.imageSmoothingEnabled = !1);

									for (var o = t.toDataURL("image/jpeg"), p = 0; p < d; p++) {
										s.addImage(o, "JPEG", 0, 0 - p * a, r, d * a), p < d - 1 && s.addPage();
									}
									if (isDownload) {
										i.removeTempContainer(), e.indexOf(".pdf") > -1 ? s.save(e) : s.save(e + ".pdf");
									} else {
										i.removeTempContainer();
										let type = options.type || "blob";
										var pdfFile = s.output(type);
										dtd.resolve(pdfFile);
									}
								});
						}
						return dtd.promise();
					}),
					(t.prototype.createTempContainer = function () {
						this.removeTempContainer(),
							$("body").prepend(
								$(
									'<div class="hiprint_temp_Container" style="overflow:hidden;height: 0px;box-sizing: border-box;"></div>',
								),
							);
					}),
					(t.prototype.removeTempContainer = function () {
						$(".hiprint_temp_Container").remove();
					}),
					(t.prototype.getTempContainer = function () {
						return $(".hiprint_temp_Container");
					}),
					(t.prototype.svg2canvas = function (t) {
						var that = this;
						t.find("svg").each(function (t, e) {
							var n = e.parentNode,
								p = that.parentWidthHeight(n),
								i = document.createElement("canvas");
							(i.width = p.width), (i.height = p.height);
							var ctx = i.getContext("2d"),
								str = new XMLSerializer().serializeToString(e);
							Canvg.fromString(ctx, str).render(), $(e).before(i), n.removeChild(e);
						});
					}),
					(t.prototype.parentWidthHeight = function (t) {
						if (t.style.width.endsWith("%") || t.style.height.endsWith("%")) {
							if (t.className != "hiprint-printPaper-content") {
								return this.parentWidthHeight(t.parentNode);
							}
							return { width: 10, height: 10 };
						} else {
							return { width: o.a.pt.toPx(parseFloat(t.style.width)), height: o.a.pt.toPx(parseFloat(t.style.height)) };
						}
					}),
					(t.prototype.on = function (t, e) {
						o.a.event.clear(t + "_" + this.id);
						o.a.event.on(t + "_" + this.id, e);
					}),
					(t.prototype.clientIsOpened = function () {
						return hiwebSocket.opened;
					}),
					(t.prototype.getPrinterList = function () {
						var t = hiwebSocket.getPrinterList();
						return t || [];
					}),
					(t.prototype.getElementByTid = function (t, e) {
						return null == e && (e = 0), this.printPanels[e].getElementByTid(t);
					}),
					(t.prototype.getElementByName = function (t, e) {
						return null == e && (e = 0), this.printPanels[e].getElementByName(t);
					}),
					(t.prototype.getPanel = function (t) {
						return null == t && (t = 0), this.printPanels[t];
					}),
					(t.prototype.loadAllImages = function (t, e, n) {
						var i = this;
						null == n && (n = 0);

						for (var o = t[0].getElementsByTagName("img"), r = !0, a = 0; a < o.length; a++) {
							var p = o[a];
							p.src &&
								p.src !== window.location.href &&
								-1 == p.src.indexOf("base64") &&
								((p && void 0 !== p.naturalWidth && 0 !== p.naturalWidth && p.complete) || (r = !1));
						}

						n++,
							!r && n < 10
								? setTimeout(function () {
										i.loadAllImages(t, e, n);
									}, 500)
								: e();
					}),
					(t.prototype.setFontList = function (t) {
						this.fontList = t;
					}),
					(t.prototype.getFontList = function () {
						return this.fontList;
					}),
					(t.prototype.setFields = function (t) {
						this.fields = t;
					}),
					(t.prototype.getFields = function () {
						return this.fields;
					}),
					(t.prototype.setOnImageChooseClick = function (t) {
						this.onImageChooseClick = t;
					}),
					(t.prototype.getOnImageChooseClick = function () {
						return this.onImageChooseClick;
					}),
					(t.prototype.getFieldsInPanel = function () {
						var t = [];
						return (
							this.printPanels.forEach(function (e) {
								t = t.concat(e.getFieldsInPanel());
							}),
							t
						);
					}),
					(t.prototype.getTestData = function () {
						var t = {};
						return (
							this.printPanels.forEach(function (e) {
								t = Object.assign(t, e.getTestData());
							}),
							t
						);
					}),
					(t.prototype.update = function (t, idx) {
						var e = this;
						try {
							if (t && "object" == _typeof(t) && t.panels.length > 0) {
								var curLen = e.printPanels.length - 1;
								t.panels.forEach(function (panel, index) {
									if (index > curLen) {
										e.printPanels.push(new pt(panel, e.id));
										var t = e.printPanels[index];
										e.container.append(t.getTarget()), index > 0 && t.disable(), t.design(e.designOptions);
										e.printPaginationCreator && e.printPaginationCreator.buildPagination();
									}
									var temp = new rt(panel);
									e.editingPanel = e.printPanels[index];
									e.editingPanel.update(temp);
								});
								e.selectPanel(idx || 0);
							}
						} catch (er) {
							console.log(er);
							e.onUpdateError && e.onUpdateError(er);
						}
					}),
					(t.prototype.getSelectEls = function () {
						var t = this;
						var elements = [];
						// 获取选区元素
						if (t.editingPanel.mouseRect && t.editingPanel.mouseRect.target && $(".mouseRect").length) {
							elements = t.editingPanel.getElementInRect(t.editingPanel.mouseRect);
						} else {
							// 获取多选元素
							elements = t.editingPanel.printElements.filter(function (el) {
								return (
									"block" == el.designTarget.children().last().css("display") &&
									!el.printElementType.type.includes("table")
								);
							});
						}
						return elements;
					}),
					(t.prototype.selectElementsByField = function (fieldsArray) {
						var hiPrintEntity = this;
						var t = $;
						hiPrintEntity.editingPanel.printElements.forEach((e, index) => {
							if (fieldsArray && fieldsArray.includes(e.options.field)) {
								let designTarget = e.designTarget;
								designTarget.children("div[panelindex]").addClass("selected");
								designTarget.children().last().css({
									display: "block",
								});
								designTarget = designTarget[0];
								t.data(designTarget, "hidraggable").options.onBeforeSelectAllDrag.call(designTarget, {});
							}
						});
					}),
					(t.prototype.selectAllElements = function () {
						var hiPrintEntity = this;
						var t = $;
						hiPrintEntity.editingPanel.printElements.forEach((e, index) => {
							let designTarget = e.designTarget;
							designTarget.children("div[panelindex]").addClass("selected");
							designTarget.children().last().css({
								display: "block",
							});
							designTarget = designTarget[0];
							t.data(designTarget, "hidraggable").options.onBeforeSelectAllDrag.call(designTarget, {});
						});
					}),
					(t.prototype.updateOption = function (option, v) {
						// 批量更新参数
						var elements = this.getSelectEls();
						if (elements && elements.length) {
							elements.forEach(function (e) {
								e.updateOption(option, v, true);
							});
							o.a.event.trigger("hiprintTemplateDataChanged_" + this.id, "批量修改");
						}
					}),
					(t.prototype.setElsAlign = function (e) {
						// 设置框选、多选元素对齐api
						var t = this;
						var elements = this.getSelectEls();
						if (elements.length) {
							var minLeft = Math.min.apply(
								null,
								elements.map(function (el) {
									return el.options.left;
								}),
							);
							var maxRight = Math.max.apply(
								null,
								elements.map(function (el) {
									return el.options.left + el.options.width;
								}),
							);
							var minTop = Math.min.apply(
								null,
								elements.map(function (el) {
									return el.options.top;
								}),
							);
							var maxBottom = Math.max.apply(
								null,
								elements.map(function (el) {
									return el.options.top + el.options.height;
								}),
							);
							switch (e) {
								case "left": // 左对齐
									elements.forEach(function (el) {
										el.updateSizeAndPositionOptions(minLeft);
										el.designTarget.css("left", el.options.displayLeft());
									});
									break;
								case "vertical": // 居中
									var vertical = minLeft + (maxRight - minLeft) / 2;
									elements.forEach(function (el) {
										el.updateSizeAndPositionOptions(vertical - el.options.width / 2);
										el.designTarget.css("left", el.options.displayLeft());
									});
									break;
								case "right": // 右对齐
									elements.forEach(function (el) {
										el.updateSizeAndPositionOptions(maxRight - el.options.width);
										el.designTarget.css("left", el.options.displayLeft());
									});
									break;
								case "top": // 顶部对齐
									elements.forEach(function (el) {
										el.updateSizeAndPositionOptions(undefined, minTop);
										el.designTarget.css("top", el.options.displayTop());
									});
									break;
								case "horizontal": // 垂直居中
									var horizontal = minTop + (maxBottom - minTop) / 2;
									elements.forEach(function (el) {
										el.updateSizeAndPositionOptions(undefined, horizontal - el.options.height / 2);
										el.designTarget.css("top", el.options.displayTop());
									});
									break;
								case "bottom": //底部对齐
									elements.forEach(function (el) {
										el.updateSizeAndPositionOptions(undefined, maxBottom - el.options.height);
										el.designTarget.css("top", el.options.displayTop());
									});
									break;
								case "distributeHor": // 横向分散
									var sumWidth = [].reduce.call(
										elements,
										function (total, el) {
											return total + el.options.width;
										},
										0,
									);
									var distributeHor = (maxRight - minLeft - sumWidth) / (elements.length - 1);
									elements.sort(function (prev, curr) {
										return prev.options.left - curr.options.left;
									});
									elements.forEach(function (el, index) {
										if (![0, elements.length - 1].includes(index)) {
											el.updateSizeAndPositionOptions(
												elements[index - 1].options.left + elements[index - 1].options.width + distributeHor,
											);
											el.designTarget.css("left", el.options.displayLeft());
										}
									});
									break;
								case "distributeVer": // 纵向分散
									var sumHeight = [].reduce.call(
										elements,
										function (total, el) {
											return total + el.options.height;
										},
										0,
									);
									var distributeVer = (maxBottom - minTop - sumHeight) / (elements.length - 1);
									elements.sort(function (prev, curr) {
										return prev.options.top - curr.options.top;
									});
									elements.forEach(function (el, index) {
										if (![0, elements.length - 1].includes(index)) {
											el.updateSizeAndPositionOptions(
												undefined,
												elements[index - 1].options.top + elements[index - 1].options.height + distributeVer,
											);
											el.designTarget.css("top", el.options.displayTop());
										}
									});
									break;
							}
						}
					}),
					(t.prototype.setElsSpace = function (dis, isHor) {
						var t = this;
						var elements = this.getSelectEls();
						if (elements.length) {
							if (isHor) {
								// 水平距离 →
								elements.sort(function (prev, curr) {
									return prev.options.left - curr.options.left;
								});
								elements.forEach(function (el, index) {
									if (index > 0) {
										el.updateSizeAndPositionOptions(
											elements[index - 1].options.left + elements[index - 1].options.width + dis,
										);
										el.designTarget.css("left", el.options.displayLeft());
									}
								});
							} else {
								// 垂直距离 ↓
								elements.sort(function (prev, curr) {
									return prev.options.top - curr.options.top;
								});
								elements.forEach(function (el, index) {
									if (index > 0) {
										el.updateSizeAndPositionOptions(
											undefined,
											elements[index - 1].options.top + elements[index - 1].options.height + dis,
										);
										el.designTarget.css("top", el.options.displayTop());
									}
								});
							}
						}
					}),
					(t.prototype.initAutoSave = function () {
						var t = this;
						o.a.event.on("hiprintTemplateDataShortcutKey_" + this.id, function (key) {
							if (!t.history) return;
							switch (key) {
								case "undo":
									if (t.historyPos > 0) {
										t.historyPos -= 1;
										var cur = t.historyList[t.historyPos];
										t.update(cur.json);
									}
									break;
								case "redo":
									if (t.historyPos < t.historyList.length - 1) {
										t.historyPos += 1;
										var cur = t.historyList[t.historyPos];
										t.update(cur.json);
									}
									break;
							}
						});
						o.a.event.on("hiprintTemplateDataChanged_" + this.id, function (type) {
							if (t.history) {
								var j = 1 == t.dataMode ? t.getJson() : t.getJsonTid();
								t.lastJson = j;
								if (t.historyPos < t.historyList.length - 1) {
									t.historyList = t.historyList.slice(0, t.historyPos + 1);
								}
								t.historyList.push({ id: s.a.instance.guid(), type: type, json: j });
								if (t.historyList.length > 50) {
									t.historyList = t.historyList.slice(0, 1).concat(t.historyList.slice(1, 50));
								} else {
									t.historyPos += 1;
								}
								t.onDataChanged && t.onDataChanged(type, j);
							}
						});
					}),
					t
				);
			})();

		function ht(t) {
			this.getHtml(t).hiwprint();
		}

		function ft(t, e, n) {
			$.extend({}, t || {}).imgToBase64 = !0;
			var i = new ct({});
			i.on("printSuccess", e), i.on("printError", n), i.printByHtml2(this.getHtml(t), t.options);
		}

		function gt(t) {
			var e = void 0;
			return (
				t &&
					t.templates.forEach(function (n, i) {
						var o = $.extend({}, n.options || {});
						t.imgToBase64 && (o.imgToBase64 = !0),
							e ? e.append(n.template.getHtml(n.data, o).html()) : (e = n.template.getHtml(n.data, o));
					}),
				e
			);
		}

		function mt(t) {
			p.a.instance.init(t),
				p.a.instance.providers &&
					p.a.instance.providers.forEach(function (t) {
						t.addElementTypes(a.instance);
					});
			if (window.autoConnect && (p.a.instance.host != hiwebSocket.host || p.a.instance.token != hiwebSocket.token)) {
				hiwebSocket.stop();
				p.a.instance.host && (hiwebSocket.host = p.a.instance.host);
				p.a.instance.token && (hiwebSocket.token = p.a.instance.token);
				hiwebSocket.start();
			}
			if (p.a.instance.lang && Object.keys(languages).includes(p.a.instance.lang)) {
				i18n.lang = p.a.instance.lang;
			} else {
				i18n.lang = "cn";
			}
		}

		function cig(t) {
			if (t) {
				t &&
					Object.keys(t).forEach(function (i) {
						if (i == "optionItems" && t.optionItems && t.optionItems.length) {
							p.a.instance.registerItems(t.optionItems);
						} else if (t[i].tabs && t[i].tabs.length) {
							t[i].tabs.forEach(function (tab, idx) {
								if (tab.replace) {
									$.extend(p.a.instance[i].tabs[idx], tab);
								} else {
									var options = tab.options,
										list = p.a.instance[i].tabs[idx].options;
									options.forEach(function (o) {
										var idx = list.findIndex(function (e) {
											return e.name == o.name;
										});
										if (idx > -1) list[idx].hidden = o.hidden;
										else {
											if (o.after) {
												idx = list.findIndex(function (e) {
													return e.name == o.after;
												});
												if (idx > -1) list.splice(idx + 1, 0, o);
											} else list.push(o);
										}
									});
									$.extend(p.a.instance[i].tabs[idx], {
										name: tab.name,
										options: list,
									});
								}
							});
							delete t[i].tabs;
						} else if (t[i].supportOptions) {
							var options = t[i].supportOptions,
								list = p.a.instance[i].supportOptions;
							options.forEach(function (o) {
								var idx = list.findIndex(function (e) {
									return e.name == o.name;
								});
								if (idx > -1) list[idx].hidden = o.hidden;
								else {
									if (o.after) {
										idx = list.findIndex(function (e) {
											return e.name == o.after;
										});
										if (idx > -1) list.splice(idx + 1, 0, o);
									} else list.push(o);
								}
							});
							$.extend(p.a.instance[i].supportOptions, list);
							delete t[i].supportOptions;
						} else {
							var keyMap = {};
							keyMap[i] = t[i];
							$.extend(p.a.instance, keyMap);
						}
					});
			} else {
				$.extend(p.a.instance, HIPRINT_CONFIG);
			}
		}

		function uep(t, c) {
			return a.instance.updateElementType(t, c);
		}

		function rpl(c) {
			p.a.instance.clear("printerList");
			p.a.instance.on("printerList", c);
			hiwebSocket.refreshPrinterList();
		}

		function getClients(c) {
			p.a.instance.clear("clients");
			p.a.instance.on("clients", c);
			hiwebSocket.getClients();
		}

		function getClientInfo(c) {
			p.a.instance.clear("clientInfo");
			p.a.instance.on("getClientInfo", c);
			hiwebSocket.getClientInfo();
		}

		function getAddr(type, c, ...args) {
			p.a.instance.clear("address_" + type);
			p.a.instance.on("address_" + type, c);
			hiwebSocket.getAddress(type, ...args);
		}

		function ippPrint(options, callback, connected) {
			p.a.instance.clear("ippPrinterCallback");
			p.a.instance.on("ippPrinterCallback", callback);
			p.a.instance.clear("ippPrinterConnected");
			p.a.instance.on("ippPrinterConnected", connected);
			hiwebSocket.ippPrint(options);
		}

		function ippRequest(options, callback) {
			p.a.instance.clear("ippRequestCallback");
			p.a.instance.on("ippRequestCallback", callback);
			hiwebSocket.ippRequest(options);
		}

		n.d(e, "init", function () {
			return mt;
		}),
			n.d(e, "setConfig", function () {
				return cig;
			}),
			n.d(e, "updateElementType", function () {
				return uep;
			}),
			n.d(e, "hiwebSocket", function () {
				return hiwebSocket;
			}),
			n.d(e, "refreshPrinterList", function () {
				return rpl;
			}),
			n.d(e, "getClients", function () {
				return getClients;
			}),
			n.d(e, "getClientInfo", function () {
				return getClientInfo;
			}),
			n.d(e, "getAddress", function () {
				return getAddr;
			}),
			n.d(e, "ippPrint", function () {
				return ippPrint;
			}),
			n.d(e, "ippRequest", function () {
				return ippRequest;
			}),
			n.d(e, "PrintElementTypeManager", function () {
				return it;
			}),
			n.d(e, "PrintElementTypeGroup", function () {
				return ot;
			}),
			n.d(e, "PrintTemplate", function () {
				return ct;
			}),
			n.d(e, "print", function () {
				return ht;
			}),
			n.d(e, "print2", function () {
				return ft;
			}),
			n.d(e, "getHtml", function () {
				return gt;
			}),
			$(document).ready(function () {
				console.log("document ready");
				console.log(window.autoConnect);
				if (hiwebSocket.hasIo() && window.autoConnect) {
					hiwebSocket.start();
				}
			});
	},
]);

var defaultElementTypeProvider = defaultTypeProvider(hiprint);

export { hiprint, defaultElementTypeProvider };
